Многие современные пользователи сегодня вообще не знают историю развития вычислительной техники. А зачем? Ведь и без этих знаний можно прекрасно обходиться - все и так работает. Некоторые даже не знают, что такое DOS…
Сейчас такая же ситуация начинает происходить и в мире Linux. Человек покупает последнюю версию, устанавливает ее, использует, затем обновляет до более новой и все. Во времена первых версий пользователи Linux знали об этой операционной системе гораздо больше современных пользователей. Виной сему тенденция ко всемирному упрощению, а принцип "чем проще, тем лучше" стал основным принципом разработки программного обеспечения - как обычной программы, так и операционной системы.
Чтобы заполнить пробел в знаниях современных пользователей, во введении мы поговорим об истории развития рассматриваемого в книге дистрибутива - Fedora 8.
Краткий исторический обзор
17 сентября 1991 года появилась первая версия Linux (0.01), Ее создателем был Линус Торвальдс (Linus Torvalds). Первый дистрибутив Linux появился чуть позже - в 1992 году. Первым дистрибутивом стал МСС Interim Linux (Manchester Computing Centre - Манчестерский компьютерный центр). В то время дистрибутивы были совсем не такими, как мы себе представляем сейчас. Тогда пол дистрибутивом подразумевались три дискеты: на первой помещалось ядро, на второй - корневая файловая система, а на третьей - программа установки Linux на жесткий диск.
Позже в состав дистрибутивов начади включать дополнительное программное обеспечение, и количество дискет постоянно увеличивалось. Компакт-диски не были распространены в то время.
Компания Red Hat - создатель популярного дистрибутива Red Hat, на базе которого был создан дистрибутив Fedora, - была основана в 1994 году. Дистрибутивы от Red Hal всегда пользовались популярностью, поскольку они были достаточно надежными, чтобы их можно было устанавливать на серверы - тогда Linux редко можно было увидеть на рабочих станциях и домашних компьютерах.
Первая версия (бета-версия без номера) вышла 29 июля 1994 года. Она была основана на версии ядра 1.1.18 и использовала не очень удачную систему управления пакетами RPP. Данная версия не получила большого распространения и довольно скоро - 31 октября 1994 года - была заменена стабильной версией RHL 0.9 (Halloween), Главной особенностью данной версии было то, что в ней впервые (!) появились конфигураторы. Причем впервые не в истории Red Hat, а в истории ''дистрибутивостроения" вообще.
Следующая версия вышла уже с номером 1.0 (Mother's Day), Это был первый релиз (не бета-версия) от Red Hat. Именно в этой версии появился первый логотип Red Hat - "красная шапка", точнее мужчина, несущий в одной руке портфель, а в другой - красную шляпу.
Далее мы будем рассматривать не все версии дистрибутивов, а только те, появление которых повлияло на развитие дистрибутива в целом. Одной из таких версий стала версия RHL 2,0 beta (август 1995 года). В ней поддерживался формат выполняемых файлов ELF (Executable Linkage Format), использующийся до сих пор, а система управления пакетами RPP была замена более перспективной RPM, которая тоже существует по сей день.
В марте 1996 года появилась версия 3.0.3 (Picasso), Это была первая многоплатформенная версия, поддерживающая архитектуры х8б и Alpha. А в августе 1996 года (версия 3.0,4/3.95 Rembrandt) система управления пакетами RPM была наконец-то переписана на языке С (до этого использовался язык Perl), что позволило повысить ее производительность. Также в этой версии появились модули аутентификации РАМ (Pluggable Authentication Modules),
Четвертая версия Red Hat (октябрь 1996 года) была основана уже на ядре 2.0 и поддерживала три архитектуры: x86, Alpha и SPARC. Последние две архитектуры - сугубо серверные, что подчеркивает серверную направленность дистрибутива. В этой же версии изменился логотип - теперь это просто красная шапка без портфеля.
В версии 5.1 (1 июня 1998 года) впервые появилась среда GNOME, но она была еще нестабильной, поэтому не устанавливалась по умолчанию, хотя ее можно было установить с дистрибутивных дисков. В этой же версии появился единый конфигуратор- программа linuxconf, которая пережила не одну версию дистрибутива от Red Hat. Данный дистрибутив еле умещался на одном компакт-диске - это сказано для того, чтобы вы не думали, что Linux раньше постоянно распространялся на дискетах. Как только CD пришли в массы, разработчики Red Hat сразу же стали выпускать дистрибутивы на компакт-дисках,
В 1999 году среда GNOME была полностью интегрирована в дистрибутив {это была версия 6.0 - Hedwig), Особенностью данной версии было стабильное ядро 2.2.
Б сентябре 2000 гада вышла седьмая версия Red Hat (кодовое имя Guinness). В ней ничего особенного не было (кроме новых версий библиотек), но это была седьмая версия. Кстати, инсталлятор Anaconda, появившийся в версиях 6.x, в седьмой версии нормально работал в графическом режиме, поэтому пользователи могли насладиться установкой операционной системы в графическом режиме. Что ни говори, а на фоне Windows установка в текстовом режиме выглядела как-то архаично.
В январе 2001 года вышла первая версия дистрибутива (версия 7.0.90), использующая самое последнее на то время ядро - 2.4. А 6 мая 2002 года вышла внеплановая версия, так называемая ''переходная версия" Red Hat 7.3 (Valhalla). Это была почти восьмая версия. Выход восьмой версии немного затянулся, но нужно было показать миру новую версию, а то, что было готово, не совсем тянуло на "восьмую" версию, поэтому было решено взять, что было и выпустить версию 7.3. Благодаря этому разработчики сэкономили время. Ради справедливости нужно отметить, что задержка с выпуском 8 версии случилась не по вине разработчиков Red Hat. Просто они пообещали, что в восьмой версии будет gccЗ, GTK+2, Python 2, а эта "компания" опоздала к выходу восьмой версии, поэтому и появилась на свет версия 7.3.
Зато к моменту выхода восьмой версии (30 сентября 2002 года) подоспели самые последние версии GNOME 2 и KDE 3.0,3, а также в состав этой версии был включен офисный пакет OpenOffice.org 1.0.1.
Последняя версия Red Hat Linux (RHL) - 9.0.93 (Severn) - появилась 21 июля 2003 года. После этого компания Red Hat решила разделить разработку дистрибутивов на серверную и настольную часть. Серверная версия дистрибутива стала называться RHEL (правда, она существовала и до этого), а настольная - Fedora Core.
Первые версии Fedora Core являлись полным аналогом версии 9,0.93 - даже кодовое название было таким же - Severn.
Первая самостоятельная версия Fedora Core 1 (Yarrow) появилась 5 ноября 2003 года. Ничего примечательного в ней не было, даже ядро использовалось старое - 2,4 (кстати, здесь оно использовалось в последний раз).
Вторая версия Fedora Core (Tettnang) появилась в мае 2004 пода. В этой версии уже использовалось современное ядро, 2.6, и новые версии KDE 3.2 и GNOME 2.6 (это графические интерфейсы Linux).
В третьей версии (8 ноября 2004 года) тоже не было ничего особенного, зато в четвертой версии появилось 80 (!) дополнительных демонов (сервисов), а также глобальная файловая система (Global File System) - файловая система для кластеров, т.е. суперкомпьютеров. Правда, до сих пор не пойму, зачем нужно было включать поддержку этой файловой системы в настольный дистрибутив, если есть серверная версия? Скорее всего, компания Red Hat использует дистрибутивы Fedora Core как тестовую площадку для различных нововведений, которые со временем перекочуют в RHEL (Red Hat Enterprise Linux).
Пятая версия (март 2006 года) получила знаменитую пузырьковую тему и новый логотип Fedora. Понятно, что новая графическая тема - это не единственное изменение, В пятой версии используется A1GLX вместо Xgl (о том, что это такое, мы поговорим в главе про настройку трехмерного рабочего стола).
Шестая версия вышла 24 октября 2006 года. Данная версия использует новый Х-сервер - XOrg 7.1, новую систему печати, а также поддерживает платформы Macintosh.
Начиная с седьмой версии (31 мая 2007) дистрибутив стал называться просто Fedora (без Core), появилась возможность создания LiveCD, была оптимизирована скорость работы менеджера пакетов yum.
Что нового в Fedora 8
Что же нового в последней версии? Вас, как пользователя, конечно, меньше всего интересуют версии ядра, GNOME и KDE. Поэтому поговорим сугубо о "пользовательских" нововведениях (т.е. тех, которые будут интересны пользователям прежде всего).
Начнем с вкусненького. В дистрибутив по умолчанию включен трехмерный рабочий стол Compiz Fusion, настройку которого мы подробно рассмотрим в главе 5. Наверняка эффекты Compiz понравятся большинству пользователей.
В дистрибутив включен звуковой сервер PulseAudio (используется по умолчанию), имеющий огромное количество полезных настроек,
В восьмой версии Fedora по умолчанию устанавливается OpenOffice.org версии 2.3 - самая удачная на сегодняшний день версия OpenOffice, "умеющая" работать с макросами MS Office,
Шестая и седьмая версии не умели устанавливать программное обеспечение с дистрибутивного DVD, а загружали все пакеты С Интернета, даже если пакеты были на DVD. Чтобы настроить менеджер пакетов и заставить его правильно работать, приходилось выполнить ритуальный обряд танца с бубном вокруг компьютера. В восьмой версии менеджер пакетов нормально работает с дистрибутивным DVD, Да и сам интерфейс программы управления программным обеспечением стал удобнее.
Кроме того, улучшилась поддержка беспроводных сетей, в том числе и Bluetooth. А также появился новый конфигуратор system-config-firewall (его не было в предыдущих версиях), позволяющий настроить брандмауэр.
Прежде чем приступить к чтению книги
Глава 1 данной книги посвящена установке и настройке операционной системы. Мы рассмотрим установку Fedora 8, а также базовую настройку системы после установки и заодно познакомимся с основными конфигураторами дистрибутива.
В главе 2 мы рассмотрим разные способы подключения к Интернету и программы для работы с Интернетом, в частности, рассмотрим настройку браузера Firefox, который из-за лицензионных войн по умолчанию совсем ничего не умеет.
Глава 3 книги посвящена установке программного обеспечения. Мы рассмотрим разные способы установки пакетов, а также решим проблему с менеджером пакетов, возникавшую в предыдущих версиях дистрибутива (Fedora Core 6, Fedora 7),
В главе 4 будет рассмотрена настройка периферийных устройств (принтера, сканера)) работа с носителями данных и настройка видеокарты и монитора.
Глава 5 книги посвящена мультимедиа средствам, В ней мы рассмотрим установку кодеков для воспроизведения МРЗ, DivX, настройку трехмерного рабочего стола Compiz Fusion, поговорим о подключении двух мониторов к компьютеру. Также мы рассмотрим подключение телевизора к компьютеру и использование удаленного рабочего стола.
Офисный пакет OpenOffice, а также другие офисные программы будут рассмотрены в главе 6 этой книги.
Глава 7 посвящена различным системным трюкам, например, установке и использованию антивируса, системы SELinux, брандмауэра, настройке общего доступа к Интернету, настройке загрузчика GRUB и другим сугубо системным вопросам.
Не пропускайте приложения! В них вы найдете решения некоторых проблем, возникающих при установке и использовании дистрибутива, а также описание некоторых полезных команд.
От издательства "Диалектика"
Вы, читатель этой книги, и есть главный ее критик. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы хотели бы увидеть изданным нами. Нам интересны любые ваши замечания в наш адрес.
Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или электронное письмо либо просто посетить наш Web-сервер и оставить свои замечания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится ли вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас.
Отправляя письмо или сообщение, не забудьте указать название книги и ее авторов, а также свой обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем ело при отборе и подготовке к изданию новых книг.
Наши электронные адреса:
E-mail: info@dialektika.com
WWW: http://www.dialektika.com
Наши почтовые адреса:
в России: 115419, Москва, а/я 783
в Украине: 03150, Киев, а/я 152
3.1. Менеджер пакетов yum
3.1.1. Основные понятие о пакетах
Давайте сначала рассмотрим процесс установки программ в Windows. Как правило, дистрибутив Windows-программы состоит та установочного файла (обычно называется setup.exe или install.exe) и нескольких вспомогательных файлов (например, архива, содержащего саму программу) или только из одного установочного файла (если последний выполнен по принципу самораспаковывающегося архива).
Установочный файл (далее инсталлятор) просит пользователя точнить параметры установки, например, выбрать каталог для установки, указать программную группу и т.д. Затем начинается установка программы: инсталлятор копирует файлы из дистрибутива программы в выбранный пользователем каталог. После этого инсталлятор вносит необходимые изменения в системный реестр. Все, программа установлена.
В Linux же все происходит несколько иначе. Дистрибутив программы (сама программа и вспомогательные файлы, напри-тер, файлы справки, конфигурационные файлы) поставляется в виде пакета. В мире Linux существуют два основных типа пакета: RPM-пакеты и DEB-пакеты. Первые пакеты используются во всех дистрибутивах, которые были основаны на Red Hat Linux или на производных этого дистрибутива: Fedora, ASP Linux, ALT Linux, Mandriva и т.д. DEB-пакеты используются дистрибутивом Debian и его производными (Ubuntu, Kubuntu и др.).
По сути, пакет (как RPM, так и DEB) - это архив, содержащий программу. Но кроме самой программы в этом архиве есть указания для менеджера пакетов о том, как нужно устанавливать программу. А именно: куда нужно установить тот или иной файл программы, какие команды нужно выполнить до и после установки и т.д.
Обратите внимание: пользователя никто не спрашивает, куда нужно установить программу, да и установкой программы занимается не инсталлятор, входящий в дистрибутив программы, а менеджер пакетов. Это избавляет разработчиков программ от написания собственных инсталляторов, да и программы всегда устанавливаются единственным верным способом.
В Windows к идее пакетов (файлы с расширением .msi) пришли позже, но она не получила широкого распространения. Фактически в MSI-пакетах распространяются только программы от Microsoft, а сам процесс установки пакета напоминает работу обычного инсталлятора.
Но вернемся к RPM-пакетам. Как уже говорилось, в пакете содержать служебные инструкции для менеджера пакетов о том, куда установить тот или иной файл, а также о командах, которые нужно выполнить в процессе установки пакета. Кроме этил сведений, в пакете содержатся также сведения о зависимости, т.е. список пакетов, от которых зависит данный пакет, и список пакетов, с которыми устанавливаемый пакет конфликтует,
Тут псе просто. Предположим, что у нас есть библиотека, с использованием функций. которой написана программа, например, Qt. Если библиотека не установлена на компьютере, то и программа работать не будет. Но библиотека занимает много места, поэтому вместе с программой ее распространять не будешь (тем более, что библиотека-то стандартная и входит в состав многих дистрибутивов). Разработчику программы намного проще при сборке пакета указать, что пакет требует наличия библиотеки Qt. Менеджер пакетов видит эту зависимость, и если она не удовлетворена, пытается ее разрешить, другими словами, скачать пакет с Интернета (или другого хранилища макетов). В ранних версиях Linux менеджеры пакетов не умели разрешать такого рода зависимости: вы просто получали сообщение о том, что пакет установить невозможно по причине отсутствия такого-то пакета.
Теперь договорим о конфликтах. Предположим, что вы написали свой собственный WWW-сервер, ваш коллега тоже написал программу WWW-сервер. Как мы знаем, WWW-сервер использует для своей работы порт 80. Пользователь установил на свой компьютер ваш WWW-сервер, который сразу же после своего запуска узурпировал 80-й порт. При попытке установить на этот же компьютер второй WWW-сервер пользователь получит сообщение о том, что устанавливаемый пакет конфликтует с уже установленным (причина конфликта ясна: в системе может быть только одна программа, использующая 80-й порт). Конечно, такое сообщение пользователь увидит лишь в той случае, если разработчик второго сервера (или вы – для своего пакета – разницы нет) не поленится составить список конфликтов. Если же он поленился это сделать, то последствия такой установки ни к чему хорошему не приведут – скорее всего, оба WWW-сервера работать не будут,
Менеджер пакетов не разрешает конфликты. Он просто сообщает, что такой-то пакет конфликтует с таким-то пакетом. Окончательное решение за вами: вы можете удалить уже установленный пакет или отказаться от установки нового пакета.
3.1.2. Репозитории: хранилища пакетов
Раньше, когда быстрый Интернет могли себе позволить далеко не все, на дистрибутивные диски помещались все пакеты, входящие в состав дистрибутива. Не секрет, что большую часть этих пакетов пользователь не использовал. Многие пользователи при установке Linux не очень хотели разбираться, что нужно, а что - нет, и устанавливали все пакеты, которые были на дистрибутивных дисках. Можете себе сами представить, сколько Linux занимал места на жестком диске.
Сейчас все немного иначе. На дистрибутивный DVD (обычно Linux распространяется именно на DVD, хотя можно ещё встретить дистрибутивы на нескольких CD-дисках} помешаются только самые необходимые пакеты, т.е. только те, которые необходимы большинству пользователей. Также в обязательном порядке помещаются пакеты, которые занимают много места на диске. Например, в состав Fedora входят две графические среды: GNOME и KDE. По умолчанию пользователю предлагается установить GNOME, но если он при установке системы выберет KDE, не загружать же ему сотни мегабайтов из Интернета? Поэтому ''большие" программные продукты также помещаются на DVD. Все остальные пакеты хранится, в хранилищах пакетов, которые называются репозиториями.
Репозиторий - это обычный каталог, содержащий RPM-файлы и специальные служебные файлы, описывающие пакеты репозитория. Любой желающий может поместить в каталог диска любые RPM-пакеты и с помощью утилиты createrepo создать свой репозиторий. Но обычно под xpанилищем пакетов подразумевается сервер в Интернете, содержащий набор пакетов и служебные файлы, описывающие репозиторий.
При попытке установки пакета менеджер пакетов подключается к удаленному хранилищу пакетов, загружает пакет на компьютер пользователя и устанавливает его.
Преимущества такой организации очевидны, как, впрочем, и недостатки. К преимуществам можно отнести то, что вы устанавливаете только те программы, которые нужны лично вам, а не все программы, которые есть в составе дистрибутива. Да и с помощью репозиториев легко обновлять систему: у вас будут всегда установлены самые последние версии пакетов.
Но недостатки тоже на лицо. Если у вас нет Интернета, та и программу вы установить не можете! К тому же для установки программ нужно стабильное и быстрое соединение. Если у вас модемное или GPRS-соединение, то можете забыть об установи больших программ по следующим причинам:
• постоянные обрывы соединения (в случае модема);
• медленная скорость закачки пакета;
• дороговизна (в случае GPRS).
В любом случае за установку программ теперь нужно платить. Нет, не за доступ к репозиториям, а за Интернет, но в конечном итоге это ничего не меняет. Не все ли равно, кому платить деньги - Интернет-провайдеру или еще кому-то. А ведь раньше можно было установить все необходимое с одного DVD!
Конечно, если у вас ADSL-соединение, то долго ждать не придется: никаких обрывов, да и скорость соединения позволяет производить установку пакетов в режиме он-лайн. А если у вас безлимитное соединение (т.е. вы платите только абонплату, и не оплачиваете трафик), тогда вам вообще хорошо!
Но что делать пользователям, у которых медленное соединение или вообще в данный момент нет возможности подключиться к Интернету? Ведь дополнительные программы - это не главное. Дело в том, что после установки системы вам придется скачать кодеки идя прослушивания музыки и просмотра фильмов, проприетарные драйверы для видеокарты (для запуска трехмерного рабочего стола) и т.д. В этом случае, при всем моем уважении к Fedora и Red Hat, рекомендую выбрать другой дистрибутив, например Mandriva. Там и менеджер пакетов настроен на установку пакетов с дистрибутивного DVD, да и на самом DVD намного больше пакетов, включая кодеки и другие полезные пакеты, которые в случае с Fedora вам придется загружать из Интернета.
3.1.3. Использование yum
Управлением пакетами в Fedora занимается программа yum (Yellow dog Updater Modified) - это и есть менеджер пакетов. С его помощью вы можете устанавливать и удалять пакеты, а также обновлять уже установленные пакеты.
Программа yum не обладает графическим интерфейсом, поэтому запускать ее придется или в консоли, или в терминале (команда меню Приложения→Системные→Терминал). Поскольку в большинстве случаев установка пакетов будет осуществляться из Интернет-репозитория, перед установкой пакетов нужно подключиться к Интернету.
Для управления пакетами нужны полномочия пользователя root, поэтому вам нужно ввести команду:
su
Предположим, что вы хотите установить программу. Для этого вы вводите команду:
yum install
имя_пакета Yum просматривает свой файл конфигурации /etc/yum.conf, в котором описаны репозитории. Затем он подключается к репозиторию, содержащему нужный вам пакет, скачивает и устанавливает его. Если менеджер пакетов обнаружит, что устанавливаемый пакет зависит от дополнительных пакетов, которые еще не установлены, он скачает, а затем установит и их.
Общий синтаксис вызова yum выглядит так:
yum
команда [
пакет(ы)]
Список наиболее полезных команд yum приведен в табл. З.1.
Для получения информации об остальных командах yum откройте терминал и введите команду man yum. Откроется страница руководства (man от англ. manual) по утилите yum, содержащая полную информацию о ней.
Таблица 3.1. Самые полезные команды yum
| Команда |
Описание |
| install пакет |
Используется для установки указанного пакета (указанных пакетов). Если будет обнаружено, что устанавливаемый пaкeт зависит от другого пакета, то тот пакет также будет установлен |
| remove пакет |
Удаляет указанный пакет |
| update [пакет] |
Обновляет указанный пакет или все пакеты, если ни один пакет не указан. Осторожнее с этой командой, если у вас не безлимитное соединение с Интернетом; обновление системы может занимать сотни мегабайтов |
| check-update |
Менеджер пакетов выполняет только проверну наличия обновлений, т.е. реально обновления не скачиваются и не загружаются. Вы можете использовать эту команду как для проверки наличия обновлений указанного пакета, так и для проверки обновлений для всех пакетов (просто не указывайте пакеты) |
| info пакет |
Используется для просмотра информации о пакета (рис. 3.1). |
| list [маска] |
Выводит список установленных пакетов. Вы можете задать маску вывода имен пакетов, например, для вывода всем установленных пакетов, начинающихся строкой gnome, введите команду yum list gnome* (рис. 3.2) |
| grouplist |
Выводит список групп пакетов (pиc. 3.3) |
| groupinstall группа |
Позволяет установить все пакеты из указанной группы |
| search слово |
Используется для поиска пакетов, которые в своем описании содержат указанное пользователем ключевое слово |
При выводе информации о пакете (команда yum info) выводится имя пакета (Name), архитектура компьютера (Arch), версия (Version) и релиз (Release) пакета, размер занимаемого дискового пространства (Size), источник пакета (Repo), общая информация о пакете (Summary), полное описание пакета (Description). Пример:
yum info gnоmesword
Available Packages
Name: gnomesword Arch: i386 Version: 2.3.1
Release: 1.fc8
Size: 4.6 M
Repo: updates
Summary: GHQME-based Bible research tool
Description:
Gnomesword is a Bible Study application for GNOME, a graphical desktop environment which is available for several Unix and Linux flavors. It is based on SWORD by the CrossWire Bible Society, a framework providing the possibility to study the Bible and additional information like commentaries, dictionaries and other texts using your computer.
Pиc. 3.1. Вывод информации о пакете Во время установки пакетов с помощью команды yum install далеко от компьютера не отходите. В отличие от команды rpm, когда в большинстве случаев пакет устанавливается автоматически, при использовании yum иногда необходимо вмешательство пользователя. Поскольку нужные пакеты частенько находятся в Интернете, yum выведет общий размер пакетов и спросит, хотите ли вы их установить. На рис. 3.4 показано, что общий размер загружаемых пакетов составляет 7,2 Мбайт. Теперь вам нужно решить: загружать их (нужно Нажать ‹Y›) или нет (нажать ‹N›).
Рис. З.2. Вывод пакетов по маске gnome* Рис. 3.3. Вывод групп пакетов Рис. 3.4. Процесс установки пакетов в yum
3.1.4. Конфигурационный файл /etc/yum.conf
Сейчас мы поговорим об основном конфигурационном файле /etc/yum.conf. Для его редактирования вам нужны права пользователя root, поэтому, чтобы открыть данный файл для редактирования, нам придется ввести в терминале следующую команду:
su -с "gedit /etc/yum.conf"
В листинге З.1. представлен типичный конфигурационный файл yum.conf.
Листинг 3.1. Пример конфигурационного файла yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
metadata_extpirе=1800
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
В секции main задаются общие для всех репозиториев параметры. Как правило, их не нужно изменять. А вот сами репозитории можно описать или в каталоге /etc/yum.repos.d (при этом каждый репозиторий описывается в отдельном файле), или после секции main. Перейдите в каталог /etc/yum.repos.d и просмотрите любой файл репозитория, например fedora.repo (это основной репозиторий Fedora):
cd /etc/yum.repos.d
cat fedora.repo
Содержимое этого файла представлено в листинге3.2.
Листинг 3.2. Файл /etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
#baseurl=http://download.fedora.redhat.com/рub/fedora/linus/releases/$releasever/Everything/$basearch/os/
mirrorlist=http://mirrors.fedoraproject.org/mirrotlist?repo-fedora-$releasever&arch-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG- KEY
[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
#baseurl=http://download.fedora.redhat.com/pub/fedora/linus/releases/$releasever/Everything/$basearch/debug/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KЕY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
[fedora-source]
name=Fedora $releasever - $basearch - Source
#baseurl=http://download.fedora.redhat.com/pub/fedora/linus/releases/$releasever/Everything/source/SRPMS/
mirrorlist=http://mirrors. fеdoraproject.org/mirrorlist?repo=fedora-source-$releasever&arch=$basearch
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPH-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
Как видно из листинга 3.2, в файле fedora.repo описано целых три репозитория. Параметр name задает имя репозитория, после него следует параметр baseurl, задающий расположение репозитория.
Параметр rnirrorlist задает список зеркал репозитория, к которым можно обращаться, если основной сервер, заданный в baseurl, недоступен.
Параметр enabled очень важный; если он равен 0, то репозиторий отключен, т.е. не используется. Это очень удобно. Вы можете описать дополнительные репозитории, но использовать их только при необходимости. Как уже было отмечено, в файле fedora.repo описано три репозитория, но два из них отключено. Репозиторий fedora-debuginfo содержит отладочную информацию, a fedora-source - исходные коды программ. Оба репозитория представляют ценность только для программистов, а обычным пользователям они не нужны.
Параметр gpgcheck задает, будет ли проверяться подпись пакета перед его установкой. Из соображений безопасности рекомендуется включить данный параметр. Следующий и последний параметр gpgkey задает файл GPG-ключа, который будет использоваться для проверки подписей пакетов.
3.1.5. Установка дополнительных репозиториев
В предыдущей главе мы рассматривали подключение репозитория livna. Напомню вам команды для подключения данного репозитория:
rpm -ihv http://rpm.livna.org/Livna-release-8.rpm (для Fedora 8)
rpm -ihv http:
//rpm
.livna.org/livna-release-7.rpm (для Fedora 7)
rpm -ihv http://rpm.livna.org/livna-release-6.rpm (для Fedora Core 6)
С командой rpm мы познакомимся в следующем разделе этой главы, а пока вам нужно знать, что для ее выполнения нужны права пользователя root, поэтому, перед тем как ввести эту команду в терминале, нужно ввести команду su.
В результате устанjdки пакета livna-release не произойдет ничего нереального и фантастического: просто в каталог /etc/yum.repos.d будет добавлен файл, описывающий репозиторий Livna. Вот и все.
Но репозиторий livna - это не единственный полезный репозиторий. Кроме него я настоятельно рекомендую установить репозиторий freshrpms:
rpm-ivh http://ftp.freshrpms.net/pub/freshirpms/fedora/1inux/7/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm
rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/f edora/linux/8/freshrpms-release/freshrpms-release-1.1-1.fс.noarch.rpm
Первую команду нужно ввести, если у вас Fedora 7, а вторую - если у вас самая современная версия дистрибутива - восьмая.
Это еще не все! Сейчас мы вручную добавим два репозитория.
Откройте ваш файл /etс/yum.conf:
su
# если вы уже получили права root
, su вводить не нужно!
gedit /etc/yum.conf
После секции main добавьте следующие строки:
[macromedia]
name=Масrоmediа for i386 Linux
baseurl=http://macromedia.rediris.es/rpm/
#baseurl=http://macromedia.mplug.org/rpm/
#baseurl=http://sluglug.ucsc.edu/macromedia/rpm/
enabled=1
gpgcheck=1
gpgkey=http://macromedia.rediris.es/FEDORA-GPG-KEY
[newrpms.sunsite.dk]
name=Fedora Core i386 NewRPMS.sunsite.dk
baseurl=http://newrpms.sunsite.dk/apt/redhat/en/basearch/fс$releasever
#http://newrpms.atrpms.net/apt/redhat/en/$basearch/fc$releasever
failovermethod=priority
enabled=0
gpgcheck=1
Вообще-то, вы можете данные секции скопировать в отдельный файл, а затем поместить этот файл в каталог /etc/ yum.repos.d, но, на мой взгляд, проще их поместитъ в yum.conf.
Секция macromedia описывает репозиторий oт Macromedia для Linux, а вторая секция, newrpms.sunsite.dk, описывает альтернативный источник пакетов от SunSite. Позже мы будем устанавливать пакеты на этих репозиториев, поэтому не поленитесь добавить их
. После редактирования файла yum.conf сохраните его и введите следующие две команды:
rpm -import http://freshrpms.net/packages/RPM-GPG-KEY.txt
rpm -import http://newrpms.sunsite.dk/gpg-pubkey-newrpms.txt
Данные команды импортируют в вашу систему ключи от только что подключенных репозиториев.
3.1.6. Yum и прокси-сервер
Вы подключаетесь к Интернету через прокси-cервеp, а не напрямую? Тогда у вас могут возникнуть проблемы с yum - он откажется работать. Чтобы заставить его работать, нужно в конфигурационном файле /etc/yum.conf указать имя про-кси-cервера (или его IP-адрес), порт, имя пользователя и пароль (если нужно). Предположим, что ваш прокси-сервер называется proxy.firma.ru, работает через порт 3128, и нам администратор сети присвоил имя пользователя denis и пароль qwerty. Тогда в секцию main файла yum.сonf вам нужно добавить следующие строки:
# имя сервера и его порт в формате: имя:порт
proxy-http://proxy.firma.ru:3128
# Параметры учетной записи (если: нужно)
proxy_username-denis
proxy_password=qwerty
После этого yum должен работать с прокси-сервером нормально.
3.2. Графический менеджер пакетов pirut
3.2.1. Усовершенствование программы pirut в Fedora 8
В предыдущих версиях дистрибутива Fedora (6 и 7) конфигуратор pirut (он же system-config-packages) был довольно проблемным приложением. Проблема была связана с неправильной настройкой репозиториев пакетов. В восьмой версии Fedora все проблемы с pirut устранены. Если же у вас до сия пор седьмая версия дистрибутива, тогда В последующих параграфах будет описано, как правильно настроить программу pirut.
В восьмой версии Fedora вообще нет конфигуратора system-config-packages. При выборе команды меню Приложения→Установка→Удаление программ запускается программа pirut. Зато в восьмой версии есть программа system-instalI-packages, предназначенная для установки пакетов, переданных ей в качестве параметров, работающая в графическом режиме. С ней мы уже успели познакомиться при установке Flash-плагина дли браузера Firefox.
Запустите программу pirut (команда меню Приложения→Установка/удаление программ). Появится сообщение о том, что не удается получить сведения о программах (рис. 3.5). Не волнуйтесь, все нормально. Щелкните на кнопке Repository Manager и в раскрывшемся окне Repository Manager отключите все репозитории кроме InstallMedia (рис. 3.6).
Рис. 3.5. Ошибка: не удается получить сведения о программах
Рис. 3.6. Окно Repository Manager
После этого заново запустите программу pirut, предварительно установив дистрибутивный DVD системы в привод. Программа запустится без ошибок и вы сможете устанавливать пакеты, используя дистрибутивный DVD (рис. 3.7).
Открыть снова окно менеджера источников можно, нажав ‹Ctrl+R› в окне менеджера пакетов.
Рис. 3.7. Менеджер пакетов
3.2.2. Проблема с system-config-packages в Fedora 6/7
Наверное, вы уже пробовали запускать программу Установка/удаление приложений (меню Приложения) и заметили, что если запустить ее, когда компьютер не подключен к Интернету, программа отказывается работать. И это не удивительно, ведь программа pirut (она же system-config-packages), запускаемая командой меню Приложения→Установка/удаление приложений, всего лишь графический интерфейс для yum, а yum, как уже было отмечено, по умолчанию настроен на использование Интернет-репозитория.
Но есть одна загвоздка. Рассмотрим реальную ситуацию. Вы установили Fedora, но при установке выбрали не все пакеты с DVD. Вообще-то, это разумное решение, Ведь вам все пакеты и не нужны, да и учитывая то, что Fedora при выборе пакетов не сообщает, сколько места они занимают на диске, очень легко превысить доступное дисковое пространство.
После установки вы рассчитываете, что доустановите с дистрибутивного DVD необходимые дополнительные пакеты. Вы запускаете программу Установка/удаление приложений и получаете… сообщение об ошибке. Да, yum настроен только на Интернет-репозитории и ничего знать не желает о пакетах, которые имеются на дистрибутивном DVD.
Получается своего рода замкнутый круг:
• вы боитесь превысить доступное дисковое пространство, потому что именно инсталлятор Fedora не выводит сведения о размере выбранных пакетов;
• но в то же время вы не можете установить пакеты с DVD, потому что yum отказывается это сделать.
Тогда у вас один выход - закачать нужные пакеты с Интернета, используя программу Установка/удаление приложений, Но как это сделать, если у вас пока нет подключения к Интернету, или есть, но очень медленное (модем или GPRS), Иногда мне кажется, что Fedora создана для пользователей с огромным жестким диском и очень быстрым Интернетом. Да, для таких пользователей, которым не нужно беспокоиться о дисковом пространстве (поэтому при установке и не выводится размер выбранных пакетов) и трафике. Какая разница, сколько займет на диске дистрибутив: 2 или 6 Гбайт, если свободно еще 300 Гбайт? Какая разница, сколько занимают устанавливаемые макеты, если трафик безлимитный, да и скорость соединения в несколько мегабитов в секунду.
Теперь вернемся к нашей ситуации и попытаемся ее решить. Первое, что приходит в голову - это установить имеющиеся на DVD пакета с помощью программы rpm
. Идея хорошая, но если вам нужно установить какой-то программный комплект, например, тот же KDE, в состав которого входит множество пакетов и каждый пакет с огромным списком зависимостей, то у вас быстро пропадет желание использовать rpm
. Выходит, что использование rpm для локальной установки пакета - это не панацея. Пару пакетов вы еще установите, а для установлен большого количества пакетов нужно автоматизировать этот процесс.
Сейчас я расскажу, как решал проблему с yum на cвоем домашнем компьютере. Честно говоря, я мог бы этого и не делать, поскольку скорость используемого соединения (1 Мбит/с) позволяет мне загружать пакеты с Интернета. Просто не хочется платить за трафик, особенно учитывая то, что все необходимые пакеты есть на дистрибутивном DVD, а потраченный на загрузку пакетов трафик можно было бы использовать на что-то более лолезное.
Первым делом я отключил все Интернет-репозитории, чтобы они не мешали, Если ваш компьютер не подключен к Интернету, то вам рекомендую сделать то же самое. Напомню, что для отключения репозитория нужно открыть файл этого репозитория (см. каталог /etc/yum.repos.d) и установить для опции enabled значение 0:
enabled=0
Если у вас описаны дополнительные репозитории в /etc/yum.conf, то их тоже нужно отключить. Когда появится доступ к Интернету, вы всегда сможете их включить.
После этого откройте yum.conf и добавьте в него строки:
[base]
name=Fedora
baseurl=file://mnt/cdrom
enabled=1
Как видите, я добавил репозиторий и в качестве адреса указал каталог /mnt/cdrom. Конечно, нужно предварительно "подмонтировать" мой DVD к этому каталогу:
# mount /dev/cdrom /mnt/cdrom
Поcле этого я запустил программу управления пакетами:
# system-config-packages
Напомню: если перед командой указан знак #, то это означает, что команда должна быть выполнена от имени пользователя root.
Программа запустилась, отобразила группы пакетов и сами пакеты! Но чуда не произошло. При попытке установки пакета я увидел сообщение об ошибке:
[Еrrno 4] IOError: ‹urlopen error unknown url type: media›
Ради интереса введите данную фразу в любой поисковик
: вы увидите очень много ссылок (один только Google нашел более 150 ссылок). Выходит, не один я столкнулся с такой проблемой.
Чтобы решить данную проблему, вам нужно установить пакет createrepo. Он находится на DVD (каталог Fedora/RPMS/) и не требует дополнительных пакетов, поэтому проблем с его установкой у нас не будет:
# rpm -ihv createrepo*
Затем нужно создать каталог, который будет использоваться как репозиторий пакетов. Сразу вас успокою: мы не будем копировать все пакеты с дистрибутивного DVD на жесткий диск, поэтому можете не беспокоиться относительно используемого места.
Для репозитория был создан каталог dvd-repo:
# mkdir /dvd-repo
Затем перейдите в каталог DVD, содержащий пакеты (Fedora/RpmS). Я предполагаю, что DVD "подмонтирован" к каталогу /mnt/cdrom:
cd /mnt/cdrom/Fedora/RPMS
После этого введите команду:
# createrepo -o /dvd-repo ./
Данная команда создаст в каталоге /dvd-repo репозиторий по файлам, которые находятся в каталоге /mnt/cdrom/Fedora/ RPMS. Теперь, реально, у нас есть репозиторий, но в нем нет пакетов. Понятно, что при попытке установки из такого "хранилища" мы получим сообщение ой ошибке. Поэтому нам нужно ввести следующую команду:
ln -s /mnt/cdrom/Fedora/RPMS/* /dvd-repo
Данная команда создаст в каталоге /dvd-repo символические ссылки на файлы, которые находятся на DVD. Вот и все. Осталось только настроить файл yum.conf. Для этого откройте /etc/yum.conf:
# gedit /etc/yum.conf
А затем добавьте в него следующие строки:
[base]
baseurl-file:///dvd-rеро
enabled=1
gpgcheck=0
Проверь подписей пакетов для данного репозитория и отключил, поскольку пакеты записаны на DVD - проверять подпись пакета нет смысла. После этого вы можете запустить графический менеджер пакетов - все будет работать:
# system-config-packages
Полная версия файла конфигурации yum.conf для установки пакетов с дистрибутивного DVD представлена в листинге 3.3.
Листинг 3.3. Конфигурационный файл /etc/yum.conf для установки пакетов с DVD [main]
cachedir=/var/cache/yum
logfile=/var/log/yum.log
kеерсасhе=0
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactaxch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
[base]
name=Fedora-DVD
baseurl=file:///dvdl-repo
gpgcheck=0
Приведенный мною способ решения проблемы - далеко не единственный. Если вам интересно, как другие пользователи "побороли" данную проблему, посетите следующую Web-страницу:
http://www.dkws.org.ua/phpbb2/viewtopic.php?t=1286
3.2.3. Дополнительные репозитории
Предположим, что у вac появился доступ к Интернету, но yum уже настроен на локальный источник - дистрибутивный DVD, На самом деле - это не проблема. Перейдите в каталог /etc/yum.repos.d, откройте файл нужного репозитория и установите для eго опции enabled значение 1:
enabled=1
Проблема решена.
3.2.4. Создание собственного сервера пакетов
Данный параграф больше рассчитан на администраторов сетей, которые понимают, что они делают. Обычным пользователям его можно прочитать разве что для "общего развития", хотя приведенный способ можно удачно использовать не только в сети масштаба предприятия, но и в небольшой домашней сети.
Предположим, что у нас есть небольшая (или большая - разницы нет) сеть и на некоторых компьютерах сети установлен дистрибутив Fedora. Дистрибутивный писк, понятно, один. Если компьютеров несколько, то диск будет "мигрировать" от одного компьютеру к другому и в конце концов, как это часто бывает, потеряется. Поэтому целесообразно создать собственный сервер репозиториев.
Идеи проста, как все гениальное: на одном из компьютеров, работающих под управлением Fedora, развернуть Web-сервер, в его корневой каталог поместить все пакеты с дистрибутивного DVD, создать репозиторий с помощью утилиты createrepo и настроить все остальные компьютеры в сети на использование "домашнего" репозитория.
Итак, у нас есть план действия, осталось только воплотить его в реальность. Для начала нам нужен. Web-сервер. Для определенности будем считать, что мы установили Web-сервер на компьютере с именем comp1 и IP-адресом 192.168.1.1.
Установить Web-сервер можно с помощью команды:
yum install httpd
После установки Web-сервера откройте его конфигурационный файл:
# gedit /etc/httpd/conf/httpd.conf
Найдите в нем директиву ServerName и укажите в ней доменное имя компьютера, на котором установлен Web-сеpвеp, например: ServerName comp1.firma.ru
Сохраните файл httpd.conf. После этого нужно "подмонтировать" DVD с пакетами и скопировать все файлы в /var/www/html - это корневой каталог документов Web-сервера:
# mount /dev/cdrom /mnt/cdrom
Теперь перейдите в каталог /var/www/html и создайте репозиторий:
# cd /var/www/html
# rpm -ihv createrepo* (не нужно, если createrepo уже установлена)
# createrepo ./
Все готово. Осталось только запустить Web-сервер:
# /etc/init.d/httpd start
В дальнейшем Web-сервер будет запускаться автоматически по умолчанию, поэтому вам не придется вводить эту команду каждый день.
Сервер настроен. Теперь перейдем к остальным компьютерам, которые будут использовать наш сервер пакетов. На каждом компьютере в каталоге /etc/yum.repos.d нужно создать файл internal.repo (название можно выбрать другое):
# cd /etc/yum.repos.d
# touch internal.repo
# gedit internal.repo
Содержимое файла internal.rеро представлено в листинге 3.4.
Листинг 3.4. Содержимое файла /etc/yum.repos.d/internal.repo
[internal]
name=fedora-internal
baseurl=http://comp1
enabled=1
gpgcheck=0
Если DNS-сервер в вашей сети не настроен, вместо доменного имени можно указать IP-адрес сервера пакетов: baseurl=http://192.1б8.1.1
Вот теперь никогда не возникнет "коллизий" между пользователями - теперь все они могут устанавливать пакеты одновременно.
3.2.5. Автоматическое обновление системы
Как только вы подключаетесь к Интернету, специальная программа, отслеживающая обновлении пакетов, связывается с сетевыми репозиториями и проверяет, есть ли новые версии установленных а вашей системе пакетов. Если новые версии пакетов найдены, вы увидите соответствующее сообщение (рис. 3.8.).
Рис. 3.8. Доступны обновления При желании можно щелкнуть на кнопке Просмотр обновлений или просто закрыть окно уведомления. Просмотр обновлений позволяет выбрать пакеты для обновления, т.е. вы caми определяете, какие пакеты нужно обновлять, а какие - нет (рис. 3.9).
Рис. 3.9. Просмотр обновлений Обновление системы помогает поддерживать вашу систему в актуальном состоянии, но постоянно обновлять систему накладно, если у вас не безлимитный Интернет. Если за каждый мегабайт трафика приходится платить свои кровные, тогда лучше вообще отключить уведомления об обновлениях. Для зтого выберите команду Система→Параметры→Персональные→Сеансы и в раскрывшемся окне Сеансы на вкладке Запускаемые при старте программы сбросьте флажок программы Уведомления об обновлениях ПО (рис. 3.10).
Pиc. 3.10. Отключение напоминаний об обновлении
3.3. Программа rpm: локальная установка пакетов
3.3.1. Немного истории
Раньше, когда не было Интернет-репозиториев, во всех RH-совместимых дистрибутивах для установки, удаления и обновления пакетов использовалась программа rpm. RPM (аббревиатура oт Red hat Package Manager) - это один из самых "древних" менеджеров пакетов. Правда, в первой бета-версии дистрибутива Red Hat, которая увидела свет 29 июня 1994 года, использовался другой менеджер пакетов - RPP, Этот менеджер имел ряд существенных недостатков, поэтому уже во второй версии дистрибутива (1995 год) он был заменен на более "продвинутый" менеджер пакетов - RPM.
Сейчас программу RPM можно встретить во многих дистрибутивах Linux - Fedora, Mandriva, ALT Linux, ASP Linux и др. Но во вcex этим дистрибутивах данная программа остается только для обеспечения совместимости, а по умолчанию используются более совершенные системы управления пакетами, например yum и apt. Преимущества новых систем управления пакетами в том, что они поддерживают удаленные хранилища пакетов. Менеджер RPM, холь и поддерживает установку удаленного пакета (в смысле пакета» расположенного на удаленном сервере), но он не поддерживает концепцию репозиториев как таковую и не позволяет разрешать зависимости непосредственно на этапе установки. На страницах книги эта фраза звучит совсем не страшно, но на практике, поверьте, это очень неудобно. Представьте, что в вашей системе не установлена оболочка KDE, а вы очень хотите ее установить. В yum вам достаточно указать пакет kdebase, и KDE будет установлена. В случае с RPM вы увидите сообщение о том, что пакет kdebase зависит от нескольких пакетов, Когда же вы попытаетесь установить те пакеты, то обнаружите, что они, в свою очередь зависят от других пакетов. Нужно обладать действительно прочным запасом терпения, чтобы устанавливать большие программные комплексы с помощью RPM. Поэтому в большинстве случаев вы будете пользоваться программой yum, а о программе RPM вам нужно знать только потому, что это - традиция.
Но, ради справедливости, нужно отметить, что RPM намного удобнее для локальной установки пакетов. Например, дома у вас нет Интернета, вы на работе скачали все необходимые пакеты, записали на CD и принесли домой. Дома вам нужно их установить. В yum тоже есть возможность установки локальных пакетов, но эта программа ориентирована на работу с Интернет-репозиториями, поэтому даже при установке локального пакета она попытается связаться с репозиториями, и если обнаружит, что они недоступны (Интернета-то нету!), то у вас не получится установить даже локальный пакет. В случае с RPM при установке локального пакета у вас не возникнет ни малейшей проблемы.
3.3.2. Формат имени пакета
Еще со времен второй версии дистрибутива Red Hat принято файлы пакетов называть так:
<имя-программы>-<версия>-<релиз>.<архитектура>.rpm
Например:
program-0.94-2-i386.rpm
3.3.3. Использование RPM
Программа RPM не имеет графического интерфейса, поэтому запускать ее нужно в консоли или в терминале (команда меню Приложения→Системные→Терминал). Формат вызова программы rpm следующий:
rpm [-опции] [пакеты]
Напомню, что установка программ - это привилегия пользователя root, поэтому перед запуском программы нужно ввести команду su, чтобы "превратиться" в пользователя root.
3.3.3.1. Установка пакетов
Для установки пакета (или пакетов - в командной строке можно указать несколько пакетов) используется опция -i:
rpm - i
пакет Если вы хотите наблюдать за процессом установки (это очень полезно, если устанавливается большой пакет или же производится установка с удаленного сервера), то нужно указать опцию ihv: вы увидите индикатор установки пакета.
rpm -ihv пакет
Предположим, что нам нужно установить пакеты program-base-0.94-2.i386.rpm, program-gui-0.94-2.i386.rpm и program-docs-0.94-2.i386.rpm, которые находятся в каталоге /home/den. При вызове rpm нам нужно указывать полный путь к пакетам (ведь RPM не использует хранилища пакетов, поэтому не "знает", где искать пакеты).
rpm -ihv /home/den/program-base-0.94-2.i386.rpm
rpm -ihv /home/den/program-gui-0.94-2
.i386
.rpm
rpm -ihv /home/den/program-docs-0.94-2.i346.rpm
Понятно, что намного проще сначала перейти в каталог /home/den, а потом уже вводить команду rpm.
rpm -ihv program-base-0.94-2.i386.rpm
rpm -ihv program-gui-0.94-2.i386.rpm
rpm -ihv program-docs-0.94-2.i386.rpm
Можно все эти пакеты указать в одной команде:
cd /home/den
rpm -ihv program-docs-0.94-2.i386.rpm program-gui-0.94-2.i386.rpm рrogram-docs-0.94-2.i386.rpm
Но еще проще использовать маски.
cd /home/den
rpm -ihv program*
В этом случае будут установлены все пакеты, которые начинаются со строки program.
Если пакет находится в Интернете, то вы можете указать URL пакета, например, так:
rpm -ihv ftp://dkws.org.ua/files/program-base-0.94-2.i386.rpm
Понятно, что перед вводом этой команды нужно предварительно подключиться к Интернету.
Программа rpm поддерживает только протокол FTP (File Transfer Protocol). Протокол HTTP (Hyper Text Transfer Protocol) не поддерживается.
Если при установке пакета будет выяснено, что он зависит от другого пакета, установка будет прервана до тех пор, пока вы не установите пакет, от которого зависит устанавливаемый вами пакет. Если такого пакета нет, то все равно вы можете установил нужный нам пакет. У программы RPM есть режим --nоdeps, позволяющий пропускать проверку зависимостей:
rpm -i --nodeps
пакет Правда, никто не может гарантировать, что установленный таким образом пакет, будет работать. Сами посудить, что толку от установленной программы, если не установлена библиотек функций, которую использует устанавливаемая программа? После запуска программа нам сообщит, что не может найти библиотечный файл и завершит работу…
3.3.3.2. Удаление пакетов
Для удаления пакета используется опция -е. При удалении не нужно задавать полное имя файла пакета, достаточно названия самой программы. Например, если изначально пакет назывался program-base-0.94-2.i386.rpm, то для его удаления достаточно ввести команду: rpm -e program-basе
3.3.3.3. Просмотр установленных пакетов
Вы хотите просмотреть список установленных программ? Тогда введите команду: rpm -qa
Менеджер пакетов выведет тысячи различных пакетов. Читать такой вывод, понятно, неудобно, поэтому можно перенаправить вывод программы rpm на программу, организующую постраничный просмотр):
rpm -qa | less
Теперь вы сможете "листать" на экране список пакетов с помощью клавиш ‹PageUp› и ‹PageDown›.
Если вы хотите просмотреть не весь список пакетов, а только пакеты, имена которых содержат определенyю строку, например program, тогда вам нужно использовать вот такую команду: rpm -qa | grep program
Если таких пакетов много, имеет смысл организовать постраничный просмотр:
rpm -qa | grep program | less
Только не перепутайте последовательность программ: сначала нужно вывести список всех установленных пакетов на фильтр grep, который отыщет среди них нужные нам пакеты, а уже после этого передать greр-список программе less.
3.3.3.4. Вывод информации о пакете
Для вывода информации о пакете используется опция -qi:
rpm -qi
лакет Например:
rpm -qi bdebase
Результат работы этой команды показан на рис. 3.11.
Рис. 3.11. Вывод команды rpm -qi kdebase Рассмотрим основные заголовки RPM-пакета.
• Name - название пакета.
• Version - версии пакета.
• Release - релиз пакета (считайте это подверсией).
• Vendor - производитель программы, находящейся в пакете,
• Build Date - дата сборки пакета.
• Install Date - дата установки пакета.
• Build Host - узел, на котором производилась сборка пакета.
• Group - название программной группы, к которой относится данный пакет,
• Source RPM - название исходного RPM-файла, с которого было установлено программное обеспечение.
• Size - размер в байтах.
• License - лицензия, по которой распространяется пакет.
• Signature - электронная подпись пакета.
• Packages - наименования организации, которая собирала пакет (дословно - упаковщик). Обратите внимание: производитель не всегда является упаковщиком! Так везде: не только в программном обеспечении- Например, кто-то производит чай, а кто-то - занимается его упаковкой.
• Url- адрес странички, связанный с программным обеспечением.
• Summary - краткое описание пакета.
• Description - полное описание пакета.
Если вы хотите просмотреть список файлов, входящий в состав пакета, тогда вам нужно использовать опцию ql:
rpm -ql
пакет Например:
rpm -ql kdebase
3.3.3.5. Обновление пакета
Пакет уже установлен, но вы скачали в Интернете его новую версию, поэтому вам его нужно обновить. Для обновления пакета используется опция -U. Данную опцию можно использовать вместе с опциями hv, если вы хотите видеть индикатор процесса обновления:
rpm - Uhv пакет.
3.4. Установка программ из исходного кода
3.4.1. Идея открытого кода
Знаете, почему Linux называется открытой операционной системой? Потому что любому желающему доступен исходный код ее ядра и большинства Linux-приложений. Вы можете загрузить исходный код любой программы и откомпилировать его.
Раньше программы для Linux распространялись только в исходных кодах. Но, сами понимаете, для конечного пользователя компиляция пакета - занятие удручающее. Это в свое время и отпугивало пользователей от Linux. Использовать Linux было сложно: командная строка, отсутствие хорошего графического интерфейса, проблемы с локализацией, установка программ из исходного кода…
Разработчики Linux всеми возможными способами старались сделать Linux проще, чтобы теперь она была такой, как мы ее видим: интуитивно понятный графический интерфейс пользователя, минимум использования командной строки, никаких проблем с русским языком и удобная установка пакетов!
Для упрощения установки программ как раз и были придуманы пакеты. В пакетах программы находятся уже в откомпилированном виде. Разработчики программ компилируют программы сами, затем помещают их в пакеты, а пользователю остается лишь установить пакет.
Но лаже сейчас иногда приходится устанавливать пакеты из исходного кода. Например, вы используете дистрибутив Fedora, а в Интернете нужная вам программа распространяется только в виде DEB-пакета или в виде исходного кода. Поскольку DEB-пакет в Fedora установить нельзя, то нам придется скачать исходный код и самостоятельно откомпилировать программу.
Если вы просто хотите использовать самые новые версии программ, которые еще не собраны в пакеты, то вам тоже нужно загрузить "исходники" и откомпилировать их вручную.
3.4.2. Компилятор gcc
Не открою большого секрета, если скажу, что практически все программное обеспечение для Linux написано на языке С. Если вы хотите откомпилировать программу из исходного кода, то вам сначала нужно установить компилятор gcc.
Для этого введите следующую команду:
yum install gcc
Кроме компилятора gcc будут также установлены дополнительные пpoграммы (automake, make и др.), необходимые для сборки программ.
Конечно, ваша программа для сборки может требовать наличия какой-то библиотеки или какого-нибудь специального инструмента, но тут ничем не могу помочь- вам придется прочитать рекомендации из файла readme.txt, который поставляется вместе с исходным кодом, чтобы выяснить, что нужно для компиляции программы.
3.4.3. Компиляция
Как правило, исходные коды программ распространяются в виде архива с "двойным расширением" -.tar.gz. Исходный код принято распаковывать в каталог /usr/src. Поэтому для распаковки архива вам нужно выполнить следующие команды:
su
cd /usr/src
gunzip архив.tar.gz
tar xvf архив.tar
Обратите внимание: после обработки архива программой gunzip расширение.gz указывать не нужно.
Иногда архив запакован не программой gzip, а программой bz иди bz2. Тогда для распаковки такого архива нужно ввести команду:
bunzip архив.tar.bz
(если использовалась программа bz);
bunzip2 архив.tar.bz2
(если использовалась программа bz2).
Архив будет распакован в каталог /usr/src/архив. Например, если вы распаковывали архив program.tar.gz, то у вас появится каталог /usr/src/program. Перейдите в него.
Далее вы должны последовательно ввести три команды:
./сonfigure
make
make install
Первая программа проверит вашу систему на предмет наличия всех необходимых для сборки программы инструментов и всех необходимых для работы программы библиотек. Если сценарий configure не выведет сообщений об ошибках, тогда будет создан файл Makefile, содержащий указания программе плаке по поводу компиляции вашей программы. Если же есть сообщения об ошибках, внимательно прочитайте их. После этого нужно устранить ошибки, например, установить недостающие пакеты.
Команда make выполнит компиляцию вашей программы, а команда make install - установит программу, т.е. скопирует выполняемые файлы программы в каталог /usr/bin, добавит программу в меню GNOME (если это предусмотрел разработчик), создаст конфигурационные файлы программы и т.д.
Если в результате сборки (компиляции) программы не произошло никаких ошибок, тогда можно приступить к использованию программы.
4.1. Настройка видеокарты и монитора
4.1.1. Что такое X.Оrg
4.1.1.1. Немного истории
В первых версиях Linux не было графического интерфейса.
В апреле 1992 года для Linux была создана система X Window - графическая подсистема Linux.
X Window (полное название X Window System) - это не графический интерфейс пользователя, это система, предоставляющая инструменты и протоколы для построения графических интерфейсов пользователя. Это позволяет в рамках X Window разрабатывать различные оконные менеджеры и графические среды. Получается, что подсистема одна - X Window, а интерфейс пользователя может быть разным. Как уже было отмечено, наиболее популярными графическими средами для Linux стали KDE и GNOME.
X Window предоставляет базовые функции графической среды, а именно прорисовку и перемещение окон на экране, обеспечение работы с клавиатурой и мышью. А вот детали графического интерфейса, т.е. как именно будет выглядеть окно и различные элементы GUI (Graphic User Interface) определяют оконные менеджеры. С одной стороны, данное решение довольно креативное: пользователь может выбрать и настроить графический менеджер так, что его графический интерфейс будет уникальным. С другой стороны, такая "разношерстность" не способствует быстрому обучению работы с Linux. Но в те времена, когда создавалась Linux, никто не думал о простых пользователях, ведь Linux была операционной системой для пользователей-профессионалов, которые с легкостью осваивались в любом графическом интерфейсе. Сегодня обычным пользователям удивится намного больше внимания. Ради справедливости нужно отметить, что современные графические среды KDE и GNOME, особенно в паре с трехмерным рабочим столом, удобнее и привлекательнее даже самого современного интерфейса Windows - Aero (используется в Windows Vista).
X Window - это сетевая система, т.е. если операционная система не поддерживает сеть, то и X Window работать не будет. Ни это не недостаток, а преимущество X Window, ведь в этой системе приложения могут выполняться на одной машине, а их интерфейс отображаться на другой. Другими словами, используя X Window, очень легко создать X-терминал - гак называемый "тонкий клиент", когда пользователь видит только результат (окно программы), а все вычисления выполняет сервер, обсуживающий терминалы. Благодаря такому решению можно использовать старые и никому не нужные компьютеры.
Сама система X Window более "древняя", чем вы можете себе представить. Первая версия X Window была разработана для UNIX в 1984 году в Массачусетсском технологическом институте (МIТ). На Linux перенос этой системы стал возможен, когда Linux стала поддерживать сеть, а это произошло в 1992 году. Протокол X11 который используется системой X Window до настоящего времени, появился в 1987 году.
Проект Х возглавляет фонд X.Org Foundation. Сейчас бесплатно распространяемая реализация системы X11 называется именно X.Org. Хотя название сути не меняет - возможности системы те же, как и конфигурационные файлы.
B книге мы будем называть графическую подсистему X.Org или X Window - знайте, что имеется в виду одно и то же. Также X Window System часто называют X11, или просто X. Основные этапы развития X Window представлены в табл. 4.1.
Некоторые бывшие пользователи никак не могут отвыкнуть от Windows и неправильно называют X Window System X Windows. Не нужно употреблять это название!
Таблица 4.1. Основные этапы развития X Window
| Дата |
Версия |
Событие/Описание |
| июнь 1984 |
X1 |
Вышла первая версия X Window, впервые используется обозначение "X" |
| Январь 1985 |
X6 |
Первая версия, лицензированная внешними компаниями |
| Сентябрь1985 |
X9 |
Поддержка цвета (первые версии были черно-белыми) |
| Февраль 1986 |
X10R3 |
Первый выпуск системы в свет. т.е. за пределы MIT. Оконным менеджером по умолчанию становится uwm |
| 15 сентября 1987 |
X11 |
Первая версия текущего протокола - X11 |
| 25 октября 1988 |
X11R3 |
Создан XDM (X Display Manager) |
| 22 декабря 1989 |
X11R4 |
Используется стандартный менеджер twm (рис. 4.1), появились новые шрифты, улучшения в приложениях |
| 5 сентября 1991 |
X11R5 |
Расширенное управление цветом Xcms, появился сервер шрифтов, сервер X386 (сервер X для IBM PC-совместимых компьютеров) |
| Апрель 1992 |
X11R5 |
Система X Window импортирована на Linux |
| 16 мая 1994 |
X11R6 |
Много новых расширений: Inter-Client Exchange; X Session Management; X Synchronization; X Image; XTEST; X input; X Big Requests; XC-MISC |
| 23 декабря 1996 |
X11R6.3 |
Последний выпуск под руководством X Consortium |
| 1999 |
X11R6.5 |
Внутренний выпуск X.Org (для внутpенного пользования), недоступен широким массам |
| 6 апреля 2004 |
X11R6.7.0 |
Первый официальный выпуск от X.Org Foundation |
| 8 сентября 2004 |
X11R6.8.0 |
Появилась прозрачность окон и много других дополнительных расширений |
| 10 февраля 2005 |
X11R6.8.2 |
То же, что и R6.8.0, но добавлена поддержка новых драйверов и устранены ошибки и уязвимости 8-й версии |
| 21 декабря 2005 |
X11R7.0 |
Версия 7.0 |
| 15 февраля 2007 |
X11R7.2 |
Текущая версия |

Рис. 4.1. Оконный менеджер twm
4.1.1.2. Основные принципы построения системы X
Еще в далеком 1984 году разработчиками X Window были определены основные принципы построения этой Системы.
• Новая возможность должна добавляться в систему только в том случае, если без неё нельзя создать какое-нибудь реальное приложение.
• Не нужно пытаться удовлетворить все мыслимые потребности, но нужно сделать систему расширяемой, чтобы она могла удовлетворять новые потребности.
• Если до конца не ясна суть проблемы, то лучше вообще отказаться от решения такой проблемы.
• Нужно использовать более простые решения, не усложнять систему. Можно решить 90% проблемы, затратив 10% сил, или решить все 100%, но затратив при этом все 100% сил. 6 этом случае нужно выбрать первый вариант (90/10).
• Нужно "изолировать" сложные места.
• Политика интерфейса пользователя должна быть "в руках" клиентов, т.е. оконных менеджеров.
С тех пор проект X придерживается этих принципов. Может быть, поэтому трехмерный рабочий стол в Linux нормально работает при 512 Мбайт операторной памяти и не требует сверхмощную видеокарту? Для сравнения: чтобы только запустить Windows Aero, нужно как минимум 1 Гбайт оперативной памяти…
4.1.1.3. Системы Х.Org и ХFrее86
Довольно часто встречается наименование XFree86. Проект XFree86 возник в 1992 году из проекта сервера Х286 (это сервер X для IВМ PC-совместимых компьютеров), Х386 разработан Томасом Роэллом и Марком Снитили. Его "пожертвовала" Консорциуму X компания Snitily Graphics Consulting Services (SGCS). С тех пор XFree86 превратился в самую популярную реализацию системы для архитектуры х86.
В мае 1999 года группа The Open Group основала проект X.Org, который должен был контролировать выпуск версий X11R6.5.1 и выше. Если вы посмотрите на табл. 14.1, то заметите, что в это время разработка X практически остановилась. Все технические инновации происходили в рамках проекта XFree86. Но в 1999 году команда XFree86 вошла в состав X.Org, чему способствовали различные компании-производители аппаратного обеспечения, которое были заинтересованы в использовании ХFrее86 вместе с Linux.
До 2003 года команда Х.Org практически бездействовала, но за это время популярность Linux (как и X) выросли. Проекты X.Org и XFree86 (последний окончательно не слился с X.Org, а вошел в организацию X.Org на правах почетного члена) стали обсуждать дальнейшее развитие X. Но XFree86 в феврале 2004 года выпустил версию 4.4. Все бы ничего, но данная версия была выпущена под ограниченной лицензией. Многие проекты, например, FSF и Debian, посчитали этот пункт несовместимым с условиями GNU GPL. Другие заявили, что такая лицензия противоречит духу Х. Одним словом, XFree86 стал более закрытым, чем он был до этого…
4.1.2. Конфигурирование Х.Оrg
Сначала ми рассмотрим настройку X.Org вручную - с помощью конфигурационного файла, а потом с помощью программы-конфигуратора.
4.1.2.1. Основной конфигурационный файл
Основной конфигурационный файл /etc/X11/xorg.conf состоит из следующих секций.
• Files - пути к файлам, которые используются графической подсистемой, обычно тут указываются пути к шрифтам. Данная секция может отсутствовать, если используются только стандартные шрифты.
• Server Flags - различные флаги (параметры) сервера, обычно данная секция отсутствует.
• Module - используется для подключения разных модулей, если модули не подключаются, то секция может отсутствовать.
• InputDevice - секция описывает параметры устройств ввода, т.е. клавиатуры и мыши.
• Monitor - секция описывает параметры монитора.
• Device - используется для задания параметров видеокарты,
• Sсreen - описывает экран. Здесь описывается, какую видеокарту и какой монитор нужно использовать. В конфигурационном файле может быть описано несколько мониторов и несколько видеокарт, но в Screen нужно обязательно указать, какие из них нужно использовать.
• ServerLayout - описывает экран и устройства ввода (точнее описывает секции, где описаны экран и устройства ввода).
В листинге 4.1 приведен типичный пример конфигурационного файла xorg.conf. Как видно из листинга, секция Server-Layout ссылается на секции Screen0 и Keyboard0. В свою очередь секция Screen0 ссылается на секции устройств - Monitor0 (описывается монитор) и Videocard0 (описывается видеокарта). В секции Screen описаны различные режимы работы монитора/видеокарты (разрешение, глубина цвета).
Листинг 4.1. Пример конфигурационного файла xorg.conf
# XOrg Configuration created by system-config-display
Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSectIon
Section "Files"
ModulePath "/usr/lib64/xorg/modules"
EndSection
Section "Module"
Load "glx"
EndSection
Section "ServetFlags"
Option "AIGLX" "on"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pcl05"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:shifts_toggle,grp_led:scroll
EndSection
Section "Monitor"
Identifier "Monitor0"
Option "DPMS"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
Busid "PCI:1:0:0"
Option "AddARGBVisuals" "True"
Option "AddARGBGLXVisuals" "True"
Option "NoLogo" "True"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
Defaultdepth 24
SubSection "Display"
Depth 1
Modes "1260x1024" "1024x769" "800x600" "640x480"
EndSubSection
Subsection "Display"
Depth 4
Modes "1024x786" "800х600" "640x480"
EndSubSection
SubSection "Display"
Depth 3
Modes "1024x768" "800x600" "640x480"
EndSubSection
Subsection "Display"
Depth 15
Modes "1024x768" "800x600" "640x480"
EndSubSection
Subsection "Display"
Depth 16
Modes "1024x786" "800x600" "640x460"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubsection
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
В главе 5 мы поговорим о более тонкой настройкe X.Org
4.1.2.2. Конфигуратор system-config-display
Для настройки графической подсистемы используется конфигуратор system-config-display. С его помощью вы можете изменить монитор, видеокарту, разрешение монитора, а также настроить совместную работу двух мониторов. Мы рассмотрим все, кроме настройки двух мониторов - это довольно частный случай.
Запустите system-conflg-display (команда меню Система→Администрирование→Дисплей). На вкладке Параметры раскрывшегося окна Параметры дисплея можно установить разрешение и глубину цвета (рис. 4.2).
На вкладке Оборудование можно выбрать монитор и видеокарту (рис. 4.3).
Данный конфигуратор может работать в консоли, если графический интерфейс недоступен вследствие неправильного выбора видеокарты/монитора. Если вы хотите установить новый монитор, то рекомендую понизить разрешение по 800×600, затем выключить компьютер, подключить новый монитор и установить нужное разрешение.
Рис. 4.2. Выбор разрешения и глубины цвета Рис. 4.3 Выбор видеокарты
4.2. Работа с носителями данных
4.2.1. Автоматическое монтирование разделов жесткого диска
В Fedora 8 все разделы жесткого диска монтируются автоматически, а пиктограммы для быстрого доступа к ним помещаются на рабочий стол GNOME или KDE (рис. 4.4), что максимально упрощает доступ к разделам.
Рис. 4.4. Пиктограммы быстрого доступа к разделам жесткого диска Но далеко не во всех дистрибутивах (в том числе и в предыдущих версиях Fedora - 6 и ниже) работа с разделами организована подобным образом. В других дистрибутивах для автоматического монтирования разделов нужно отредактировать файл /etc/fstab. Формат данного файла следующий:
Раздел Точка_монтирования ФС Опции ФР ФП, где
ФС - тип файловой системы,
Опции - опции файловой системы,
ФР - флаг резервного копирования,
ФП - флаг проверки.
Теперь обо всем по порядку. Предположим, что нам нужно обеспечить автоматическое монтирование раздела /dev/sda1 (обычно это диск С:). Первым делом нужно создать каталог /mnt/c, который будет использоваться в качестве точки монтирования. Создать данный каталог имеет право только пользователь root, поэтому откройте терминал и введите две команды:
su
mkdir /mnt/c
Первая обеспечит необходимые для выполнения операции полномочия, я вторая - создаст нужный нам каталог.
Потом нужно определить тип файловой системы. Здесь все просто. Скорее всего, вам нужно будет "смонтировать" Windows-раздел, поэтому вариантов будет всего три.
• vfat - обычная файловая система. Windows (FAT32).
• ntfs - стандартный, драйвер для работы с файловой системой NTFS, не поддерживает запись данных в раздел.
• ntfs-3g- более современный драйвер для NTFS, поддерживающий запись NTFS-paзделов. Модуль ядра ntfs-3g есть только в самых современных дистрибутивах, но они и так умеют автоматически монтировать разделы жесткого диска. В более старых дистрибутивах модуль ntfs-3g нужно загрузить и установить самостоятельно с сайта www.ntfs-3g.org. С установкой проблем не возникнет, потому что установка модуля сводится к установке скачанного RPM-пакета.
Если вы не можете определиться с типом файловой системы, используйте тип auto - автоопределение, но вполне возможно, что в этом случае будут некоторые ограничении, например, будет отсутствовать запись в случае с файловой системой NTFS.
Набор опций для vfat будет таким:
umask=0,utf8
В случае с NTFS нужно указать следующие опции:
defaults,nls=utf8,umask=007,gid=46
Последние два флага можно установить в 0. Флаг резервного копирования вообще оставлен из соображений совместимости - еще со времен, когда резервное копирование выполнялось утилитой dump. А проверка файловой системы нужна только для файловых систем Linux.
Теперь самое интересное, Для монтирования раздела /dev/sda1 к каталогу /mnt/c нужно добавить в файл /etc/fstab одну из следующих cтрочек (в зависимости от используемой файловой системы):
/dev/sdal /mnt/c vfat umask=0,utf8 0 0
/dev/sdal /mnt/c ntfs-3g defaults,utf8,umask=007,gid=46 0 0
Напомню, что для редактирования файла /etc/ fstab нужны полномочия пользователя root, а само редактирование удобно производить в редакторе gedit:
gedit /etc/fstab
Чтобы изменения вступили в силу, нужно или перезагрузить компьютер, или ввести команду:
# mount -a
4.2.2. Автоматическое монтирование сменных носителей
Сменные носители, такие как оптические диски (CD/DVD), Flash-диcки, цифровые камеры и т.д., монтируются также автоматически. Как только вы вставите в привод оптический диск или подключите к компьютеру Flash-накопитель (цифровой фотоаппарат, мобильный телефон), на рабочем столе появится пиктограмма для быстрого доступа к носителю данных и откроется окно утилиты Обозреватель файлов (рис. 4.5)
Рис. 4.5. В устройство вставлен DVD-диск Вы можете настроить реакцию системы на появление нового сменного носителя. Выберите команду меню Система→Параметры→Оборудование→Сменные устройства и носители - раскроется окно Параметры сменных устройств и носителей (рис. 4.6), На его вкладке Накопители вы можете указать, должны ли автоматически монтироваться сменные носители, установив соответствующие флажки.
• Подсоединять сменяемые устройства при "горячем" подключении - данный параметр относится к Flash-дискам, цифровым камерам и другим подобным устройствам.
• Подсоединять сменяемые носители при вставке - этот параметр относится к оптическим дискам CD/DVD (может, и к дискетам, но я это не проверял, поскольку уже 3 года как на моем компьютере нет дисковода для гибких дисков!).
При вставке/подключении носителя автоматически запускается утилита Обозреватель файлов. Если вам не нравится такое поведение, сбросьте флажок Просматривать сменные Носители при вставке.
Рис. 4.6. Параметры сменных носителей Вкладка Мультимедиа (рис. 4.7) этого же окна позволяет определить реакцию системы на вставку звуковых CD и видеодисков (DVD-Video). Поскольку мы так и не научили стандартный проигрыватель totem воспроизводить видео, а установили МPlayer, то команду totem %d нужно заменить командой mplayer %d.
Рис. 4.7. Параметры для носителей мультимедиа На вкладке Камеры можно определить реакцию системы на подключение цифровой камеры (рис. 4.8). Обычно в этом случае запускается программа gthumb для импорта фотографий с фотоаппарата на жёсткий диск.
Рис. 4.8. Реакция на подключение камеры На остальных вкладках вы можете определить, что должна делать система при подключении КПК (карманные компьютеры), принтеров, сканеров и устройств ввода.
4.2.3. Журналируемая файловая система. Параметры журнала
Файловая система Linux является
журналируемой. Сейчас по-ясню, что это такое. Перед выполнением каких-либо операций файловая система создает "план действий", который помешается в так называемый "журнал". Затем она действует по четко составленному плану.
Если произошел сбой, например, элементарное отключение питания, то при следующем запуске производится проверка журнала и попытка восстановить систему до нужного состояния.
Журнал существенно повышает надежность файловой системы. Практически все современные файловые системы для Linux/Unix являются журналируемыми.
Файловая система ехt3, которая используется в любом современном дистрибутиве по умолчанию, имеет три режима рабах журнала.
• ordered - в данном режиме в журнал заносится информация только об изменении служебных данных файловой системы. Режим используется по умолчанию и является компромиссам между отказоустойчивостью и скоростью.
• journal - используйте, если хотите минимизировать по тери данных в случае сбоя. В этом режиме в журнал записываются и пользовательские данные, и служебные данные файловой системы, это самый медленный режим.
• writeback - самый быстрый, но самый бесполезный режим, толку от него мало.
Установить режим работы журнала можно с помощью опции файловой системы datа (в файле /еtс/fstab):
Пример: /dev/sda5
/ ext3 defaults,data=journal 1 1
Режим работы журнала можно задавать только для файловой системы ext3!
4.2.4. Проверка файловой системы
Для проверки файловой системы используется программа fsck (сокращение от file system check). С помощью данной программы вы можете проверить не только файловые системы Linux, но и Windows-разделы (только vfat). Единственное требование - перед началом проверки проверяемая файловая система должна быть размонтирована. Поэтому последовательность действий для проверки файловой системы будет следующей:
su
umount ‹имя_раздела›
fsck ‹имя_раздела›
Например, для проверки раздела /dev/hda1 можно использовать команды:
# umount /dev/hda1
# fsck /dev/hda1
4.3. Настройка принтера
4.3.1. Выбор принтера
Данный раздел посвящен не только настройке принтера в дистрибутиве Fedora, ко и вообще печати из Linux. Поэтому сначала мы натворим о выборе принтера и его физическом подключении, а затем - о настройке принтера в Linux.
Существуют три основных типа принтеров: ударные (матричные - это подвид ударных), струйные и лазерные.
Ударные принтеры сейчас практически не используются. Они не подходят ни для дома, ни для офиса: низкое качество печати и высокий уровень шума. Для офиса требуется более высокое качество печати, а дома вас не устроит уровень шума. Да и выглядит матричный принтер уж очень архаично, поэтому его место в музее вычислительной текинки, а не возле современного компьютера. Хотя, ради справедливости, нужно отметить, что у матричного принтера самая низкая себестоимость отпечатанной страницу, хотя и самое низкое качество печати.
Струйные принтеры идеально подойдут для дома. Стоимость струйного принтера ниже, чем стоимость лазерного принтера: самый дешевый "струйник" обойдется примерно и 40 долларов, в то время как лазерный меньше 120 не стоит, тем более, что большинство струйных принтеров поддерживают цветную печать. Конечно, себестоимость одной цветной страницы все еще велика и все фотографии, сделанные вашим цифровым фотоаппаратом, вы не распечатаете, но если срочно нужно сделать пару цветных фота, то обычный струйный принтер вам поможет. Лишь бы была фотобумага, потому что на обычной бумаге внешний вид самой фотографии оставляет желать лучшего.
Но, по сравнению с лазерными принтерами, струйные не очень хороши. Во-первых, они медленно печатают (особенно, если вы печатаете цветную фотографию). Во-вторых, одного струйного картриджа хватает примерно на 200 страниц, в то время как картриджа лазерного принтера хватает в среднем на 2000 страниц. Другими словами, себестоимость страницы, распечатанной на струйном принтере, выше. Если вам нужно много печатать, тогда лучше выбрать лазерный принтер. В-третьих, краска, нанесенная струйным принтером, смывается. Если страница, распечатанная на "струйнике", попадет под дождь, вы уже не сможете ее прочитать. В лазерном же принтере порошок: (тонер) наносится на страницу так, что его уже не смоет никакая вода. Поэтому страницы, распечатанные на лазерном принтере, менее чувствительны к внешнему воздействию.
Но и у лазерного принтера есть свои недостатки. Взять бы лаже цену: если черно-белые лазерные принтеры уже вполне доступны, то цены на цветные "лазерники" все еще "кусаются". Картридж лазерного принтера можно заправлять максимум 10 раз, после чего его нужно утилизировать, Цена нового картриджа в некоторых случаях может достигать цены принтера. Вот я, например, в прошлом году купил принтер Lexmark E321за 120 долларов. Для сравнения: новый картридж на эту модель стоит столько же. Но учитывая то, что картриджа хватает на 3000 страниц, а перезаправлять его можно 10 раз (одна перезаправка 15-20 долларов), свои деньги он окупает вполне.
Еще лазерные принтеры вредны для здоровья. Помещение, в котором установлен лазерный принтер, должно тщательно проветриваться, а заправку лазерного картриджа нужно производить в специальной лаборатории, а не собственными сипами. Если струйный картридж можно заправить в домашним условиях и при этом максимум чем вы рискуете - это испачкать полквартиры, то в случае с лазерным картриджем вы рискуете своим здоровьем.
Итак, подытожим:
• если вам нужно много печатать, тогда вам нужен лазерный принтер;
• если нам нужно высокое качество печати, тогда тоже только лазерный;
• если вас устроит приемлемое качество печати и вы печатаете не много, тогда покупайте струйный;
• если хочется печатать цветные фотографии, но при этом нет денег на покупку дорогого устройства, можно купить струйный принтер среднего класса (примерно где-то 80 долларов), только при покупке выбирайте такой принтер, который "умеет" печатать без полей.
Современные принтеры могут подключаться к компьютеру или через USB-разъём или через параллельный порт (LPT). Иногда поддерживаются оба способа. Сейчас в Linux нет проблем с USB-принтерами, поэтому желательно покупать USB-принтер: они удобнее в использовании. Вы можете отключать и подключать USВ-принтер при работающем компьютере, да и USB-кабель выглядит аккуратнее, чем LPT-кабель.
Linux поддерживает огромное количество принтеров, но нe работает с так называемыми Windows-принтерами (их еще называют GDI-принтерами). Поэтому перед покупкой принтера убедитесь, что он не является GDI-принтером!
4.3.2. Настройка принтера в Fedora
Настройка принтера в Fedora осуществляется конфигуратором system-config-printer (рис. 4.9). Напомню, что для его запуска нужно нажать ‹Alt+F2› и ввести system-config-printer, хотя можно запустить этот конфигуратор и через меню оболочки GNOME: команда Система→Администрирование→Печать - это как кому больше нравится.
Щелкните на кнопке Новый принтер. Конфигуратор попытается опознать наш принтер. Обычно, если принтер поддерживается Linux, проблем с этим не возникает (рис. 4.10).
Несмотря на то, что конфигуратор опознал принтер, вам все равно нужно выбрать производителя принтера (рис. 4.11) и уточнить модель (рис. 4.12) - точнее подтвердить выбор, сделанный конфигуратором. Это делается для того, чтобы исключить ошибку со стороны конфигуратора - вдруг он ошибся?
Рис. 4.9. Конфигуратор system-config-printer Рис. 4.10. Мой принтер -
Lexmark E321 (подключение через USB) Рис. 4.11. Подтверждение производителя принтера Рис. 4.12. Подтверждение модели принтера
Далее нужно ввести название принтера, его описание и размещение (рис. 4.13). Вообще-то, последние два поля можно не заполнять- они сугубо информационные и польза от них только в том случае, если принтер впоследствии будет сетевым (чтобы пользователи, распечатавшие на нем свои документы, знали, где к потом искать).
Рис. 4.13. Название, описание и расположение принтера После этого появится сообщение о том, что после щелчка на кнопке Применить в системе будет создан новый принтер.
4.3.3. Принтер по умолчанию
Для того чтобы печатать на только что установленном принтере в ОpenOffice, нужно сделать его принтером, выбираемым по умолчанию Для этого выберите ваш принтер в окне конфигуратора и щелкните на кнопке Сделать принтером по умолчанию (рис. 4.14).
Рис. 4.14. Принтер по умолчанию
4.3.4. Установка размера бумаги
На складке Параметры принтера конфигуратора system-config-printer вы можете задать формат бумаги, загруженной сейчас в принтер (рис 4.15).
Рис. 4.15. Выбор формата используемой бумаги
4.3.5. Автоматическое определение принтера
Вы настроили принтер, но при перезагрузке он не виден ни в окне конфигуратора, ни в других программах. Всe нормально.
Скорее всего, принтер выключен или отключен от компьютера. Windows-пользователи начинают волноваться, потому что в Wining если драйвер принтера установлен, а сам принтер не под-шючен, то пиктограмма принтера все равно есть в окне Принтеры. В Linux же если нет связи с принтером, то его пиктогpaммa не выводится, чтобы вы не пытались распечатать документ на неподключенном принтере.
Проверьте соединение принтера с компьютером, включите питание принтера. Как только система "увидит" принтер, появится сообщение о том, что принтер подключен (рис. 4.16).
Рис. 4.16. Принтер Lexmark подключен к системе
4.3.6. Виртуальный PDF-принтер в Fedora
Формат PDF (Portable Document Format) чрезвычайно популярен во всем мире. И это не удивительно: документы в формате PDF можно прочитать на любом компьютере - будь это древний компьютер под управлением DOS или самая современная графическая станция, работающая под MacOS.
Для просмотра PDF-файлов используется программа Adobe Acrobat Reader. Ее можно бесплатно скачать с сайта www. adobe.com. Хотя можно использовать другие программы для просмотра PDF, например, xpdf, но предпочтительнее использовать все же Acrobat Reader - все равно она бесплатная]
Для создания PDF используется программа Adobe Acrobat, но она уже платная. Понятно, что покупать ее не хочется, а создавать PDF-документы - нужно. В этом случае вам может помочь Linux! Установите в своей системе виртуальный РDF-принтер!
Сейчас поясню, что это такое. После установки пакета cups-pdf в вашей системе появится виртуальный принтер. С помощью system-config-packages можно сделать его принтером по умолчанию, а потом "распечатать" па нем любой документ из OpenOffice. Виртуальный принтер создаст PDF-файл по документу, отправленному на "печать" из приложения OpenOffice, т.е. создание самих документов будет происходить в пpивычнoм вам офисном пакете. Удобно? Конечно!
Все, что вам нужно - это подключиться к Интернету, открыть терминал и ввести команды:
su
yum install cups-pdf
После печати документа на виртуальном принтере созданный PDF-файл будет помещен на рабочий стол пользователя, распечатавшего документ.
В восьмой версии Fedora устанавливать пакет cups-pdf не нужно, потому что в состав этой версии дистрибутива входит офисный пакет OpenOffice 2.3, который по умолчанию позволяет сохранять документы в формате PDF. Для этого используется кнопка PDF на панели инструментов каждого приложения из состава OpenOffice. Конечно, если вам нужно создать РDF-файл с помощью приложения, не входящего в состав OpenOffice, то можно воспользоваться виртуальным PDF-принтером.
4.3.7. Многофункциональные устройства (МФУ) от HP
МФУ - это устройства, сочетающие в себе несколько функций, например, принтера, сканера и ксерокса или принтера, сканера, ксерокса и факса. Для небольшого офиса такое устройстве очень полезно и выгодно: МФУ стоит дешевле, чем отдельно купленные три устройства - принтер, сканер и ксерокс.
На наших просторах наиболее популярны МФУ от Hewlett-Packard (HP). Для поддержки такого МФУ в Fedora нужно установить пакет libsane-hpaio. Загружать его с Интернета не нужно, он находится на дистрибутивном DVD.
4.4. Настройка сканера
4.4.1. Немного о сканере и Linux
Первое подобие сканера появилось в начале ХХ-го века. Тогда ученый-оптик Корн создал первый фототелеграф. С того времени сканеры совершенствовались и постепенно превращались в то. что мы сейчас называем сканером.
Сейчас сканеры незаменимы в современном делопроизводстве. Намного проще отсканировать документ и изменить его, чем набирать вручную. С помощью сканера очень легко также сделать копню документа, конечно, при условии, что есть принтер: на cканере вы сканируете, а потом сразу выводите на печать. Одним ловом, сканер - устройство полезное.
У вас еще нет сканера? Тогда самое время поговорить о его выборе. В любом компьютерном магазине вам предложат огромный выбор сканеров. Обычно несколько моделей есть в наличии т еще с десяток можно заказать.
Первым делом нужно уточнить следующее: как сканер подключается к компьютеру к поддерживается ли сканер вашей операционной системой - Linux. Лучше всего покупать USB-сканеры - они наиболее удобны. Во-первых, возможно горячее подключение сканера. Ведь сканер нужен не каждый день, по-этому вы можете его подключать только тогда, когда он нужен, чтобы он не занимал и без того ограниченное рабочее пространство на столе. USB-сканеры можно подключать во время работы компьютepa, не выключая его, что очень удобно. С LPT-сканерами, которые подключаются к параллельному порту, такой трюк не пройдет - можно даже повредить системную плату компьютера. A SCSI-сканеры вообще пора сдать в музей - (драйверы для некоторых таких "ископаемых" вы просто не найдете (особенно для Linux). Так что с интерфейсом сканера мы определились - только USB.
Теперь поговорим о том, поддерживает ли Linux ваш сканер. Можете спросить об этом у продавца. Но, скорее всего, он не от-ветит на ваш вопрос. Тогда не спешите с покупкой сканера. За-пишите его модель и поищите информацию в Интернете - поддерживается ли ваш сканер в Linux. В Fedora 8 для работы со сканером используется программа xsane. Она же и обеспечивает поддержку сканеров. Другими словами, вы можете работать только со сканерами, которые поддерживаются программой xsane. Список поддерживаемых сканеров можно найти по адресу:
http://www.sane-project.org/sane-backends.html
Также при покупке сканера нужно обратить внимание на глубину цвета и оптическую плотность. Желательно покупать сканеры, поддерживающие глубину цвета в 36 бит и выше (48 бит). Да, для нормальной цветопередачи достаточно 24-битового сканера человек воспринимает только 24-битовый цвет), но сканеры, поддерживающие большую глубину цвета, позволяют свести к минимуму потери при АЦП (аналогово-цифровое преобразование). Вообще, для минимизации потерь при АЦП в каждом сканере есть специальные фильтры, и разрядность сканера особо на АЦП, по идее, не должна влиять. Но, как показывает практика данные фильтры работают лучше на сканерах, поддерживающих 36- и 48-битовую глубину цвета.
Теперь поговорим об оптической плотности. Чтобы особо не вникать в курс оптики, знайте следующее: чем выше оптическая плотность, тем лучше сканер различает оттенки.
У дешевых сканеров оптическая плотность обычно принимает значение 2,0. Иногда для привлечения покупателей производители завышают плотность на 0,5. Иначе говоря, если предлагается два одинаковых сканера, причем у одного оптическая плотность 2,0, а у другого - 2,5, лучше купить первый. Потому что разницу к 0,5 вы особо не почувствуете (т.е. невооруженным взглядом её видно не будет), а сканер с плотностью 2,5 будет стоить дороже.
У более дорогих сканеров плотность 3,0 и выше. Тут разница видна сразу: только взглянул на отсканированные изображения, вы сразу скажете, у какого сканера плотность выше, Максимальное значение оптической плотности для современных сканеров - 4,0, но такие сканеры стоят значительно дороже.
Также а прайс-листах часто указывают разрешающую способность, которая выражается в точках на дюйм, например, 1200×2400 dpi (dots per inch). Но учтите, что разрешающая способность бывает программной и аппаратной (оптической). В случае с аппаратной разрешающей способностью в прайс-листе и на коробке со сканером указывается hardware, например 1200×2400 dpi (hardware).
А вот если разрешающая способность программная, то указывается довольно высокое ее значение, например, 4800x2400dpi, а о типе разрешающей способности скромно помалкивают.
Теперь, когда вы знаете, как выбирать сканер, можете отправляться в магазин.
4.4.2. Программа xsane
Каких-либо действий по настройке сканера в Fedora 8 выполнять не нужно. Просто подключите сканер к компьютеру и запустите утилиту xsane (команда меню Приложения→Графика). Программа xsane сама определит сканер и после этого вы сможете начать сканирование, щелкнув на кнопке Сканировать (рис. 4.17).
Рис. 4.17. Основное окно xsane Если ваш сканер не поддерживается xsane, значит, придется ждать новой версии этой программы. Возможно
, нужно просто установить дополнительные пакеты, чтобы появилась поддержка именно вашей модели сканера. Здесь вам поможет Интернет.
4.4.3. Многофункциональные устройства от НР
В офисах довольно часто встречаются МФУ - многофункциональные устройства, состоящие из принтера, сканера и копира. Обычно такие устройства строятся на базе лазерного принтера и сканера среднего качества. Копир "прилагается" как дополнительная функция: имея принтер и сканер грех не "сделать" ксерокс!
Для поддержки МФУ производства HP нужно установить пакет libsane-hpaio:
# yum install libsane-hpaio
Чтобы обеспечить поддержку МФУ от Xerox (довольно популярны МФУ серии WorkCentre), нужно скачать Linux-драйвер производителя по адресу:
http://www.support.xerox.com/go/prodselect.asp?lang=en_US
4.4.4. Проблема с распознаванием текста
Использование сканера в Linux ограничено тем, что для Linux пока не созданы программы оптического распознавания текста (OCR). Точнее, данные программы есть, но они пока не "дружат" с русским языком, a FineReader для Linux пока не разработан. На сайте компании ABBYY можно скачать Linuх-движок для оптическою распознавания, который используется программой FineReader, но это не отдельная программа, а только движок и вряд ли вы сами будете писать собственный FineReader. Движок FineReader Engine доступен довольно давно, но пока, к сожалению, версии FineReader для Linux не появилось.
Вывести список подключенных к системе PCI-устройств можно с помощью команды lspci. Пример вывода этой команды приведен ниже.
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 645xx (rev 50)
00:01.0 PCI bridge: Silicon integrated Systems [SiS] SiS AGP Port (virtual PCI-to-PCI bridge)
00:02.0 ISA bridge: Silicon integrated systems [SiS] SiS963 [MuTIOL Media I0] (rev 25)
00:02.1 SMBus: Silicon Integrated Systems [SiS] SiS961/2 SMBus Controller
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC'97 Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systemes[SiS] USB 1.0 Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:08.0 USB Controller: NЕС Corporation USB (rev 43)
01:00.0 VGA compatible controller: nVidia Corporation. NV18 [GeForce4 MX 440 AGP 8x] (rev a4)
6.1. Текстовый процессор
6.1.1. Открытый офис: что это такое?
Ни для кого не секрет, что главным офисным пакетом в мире является MS Оffiсе. Да, далеко не все существующие компьютеры работают под управлением Windows, но никто не будет спорить, что большинство офисных и домашни* компьютеров используют именно эту операционную систему. А раз есть Windows, значит, есть Microsoft Office, Хоть MS Office и не входит в состав операционной системы, но лично я себе смутно представляю Windows-компьютер, на котором не был бы установлен этот офисный пакет.
Без офисного пакета многого не сделаешь. Пакет-то хоть и называется офисным, но в действительности нужен также и на любом домашнем компьютере. Например, вы не успели в офисе подготовить нужные документы, поэтому захватили их с собой, чтобы продолжить с ними работу дома. Дома, не спеша, вы откроете файлы и за пару часов сделаете все, что нужно. Что ни говори, а дома работать приятнее.
Даже если вы не работаете, а только учитесь, все равно офисный пакет вам нужен, хотя бы для того, чтобы подготовить реферат, курсовую или дипломную работу.
Операционная система Linux в последнее время очень активно развивается. Вы об этом и так знаете: иначе бы не держали сейчас в руках эту книгу. Но вот беда: для Linux нет версии MS Office. Может, со временем, Microsoft и выпустила бы MS Ofiice для Linux, но она уже безнадежно опоздала. Место под солнцем занял Отрытый Офис (OpenOffice),
Для Linux уже давно существует офисный пакет StarOffice, но данный пакет платный. Однако зачем же покупать коммерческий офисный пакет, если в Linux большая часть программ бесплатна? Это не говоря о том, что и за саму операционную систему не нужно платить деньги! Для многих Lmux-пользователей коммерческая Unix-программа воспринимается как что-то, не вписывающееся в идеологию Linux. Видимо, точно также думали разработчики OpenOffice, когда сознавали бесплатно распространяемый офисный пакет.
Вообще-то, OpenOffice - это далеко не единственный офисный пакет, например, есть еще KOffice, вышеупомянутый StarOffice, но OpenOffice - лучший! Именно поэтому он включен в состав большинства современных дистрибутивов. OpenOffice бесплатен (в отличие от своего ближайшего родственника - StarOffjce), "умеет" практически все, что и MS Office, да и вдобавок нормально работает с документами в формате MS Office. Что еще нужно?
Некоторые сторонники Windows заявляют, что OpenOffice не может занять место MS Office, поскольку некорректно работает с документами MS Office, не надежен, не поддерживает макросы MS Office и не удобен в работе.
У нас получился солидный список "мифов", поэтому начнем его разрушать по порядку. Даже не знаю с чего начать. Наверное, начну с надежности, поскольку, как ни крути, а это решающий фактор для офисного пакета - одно дело, если "слетит" реферат, а другое дело - когда будет поврежден годовой отчет,
Первые версии OpenOffice 1.x действительно были не очень надежны. Программа могла самопроизвольно закрыться, не сохранив изменения. Сейчас все это в прошлом. С момента выхода второй версии OpenOffice 2.x надежность работы этого офисного пакета на высоте. Подтверждение этому - мои книги; много их глав написано именно в OpenOffice. Сами понимаете, когда пишешь о Linux, то постоянно перегружаться в Windows, чтобы закомментировать свои мысли в Word, не будешь. Последние месяцы я работал с MS Word 2003, так вот, это "создание" по надежности похоже на первые версии OpenOffice: программа могла неожиданно закрыться… Правда, данные MS Word не терял - все удавалось восстановить (а может, это благодаря тому, что автосохранение у меня производится с интервалом в 2 минуты?). A MS Office 2007 - это вообще "шедевр" - более нестабильного пакета я еще не видел. Может, это потому, что он пока "сырой"?
По поводу некорректности работы с документами MS Office - это тоже настоящий бред. Недавно в MS Word я не смог открыть присланный по электронной почте документ. При иго открытии Word просто закрывался, не выдавая ни какого сообщения о& ошибке. В OpenOffice этот документ открылся без всяких ошибок. Неужели Word не умеет работать с документами, которые им же созданы? Кстати, я потом сохранил документ под другим именем (используя OpenOffice), к он стал нормально открываться в Word, Скорее всего, при пересылке была нарушена внутренняя целостность документа, но это так, к. слову.
С чем у вас в OpenOffice могут быть небольшие проблемы, так это со шрифтами, и то только в том случае, если документ создан в MS Word: в OpenOffice шрифты могут отображаться немного иначе. Но эта проблема решается установкой Windows-шрифтов. Об этом мы поговорим отдельно, а пока не будем на этом останавливаться.
И еще: OpenOffice действительно не умеет работать с макросами, созданными в MS Office. Но макросы использует лишь около 10% пользователей. Если они вам нужны, значит, нам не повезло. Хотя, возможно, вам нужно немного подождать. В OpenOffice 2.3 уже появилась экспериментальная поддержка макросов MS Office. Пока выполняются самые простые макросы, но уже скоро будет реализована полная поддержка любых макросов. Пока вам остается только радоваться тому, что вам не страшны никакие макровирусы, которые частенько встречаются в документах MS Office!
Осталось развеять последний миф - относительно "неудобности" использования OpenOffice. Я не скажу, что программы из OpenOffice выглядят как две капли воды похожими на свои аналоги от Microsoft, но все же они на них очень похожи. Во всяком случае у вас не должно быть проблем с "переездом" в OpenOffice. А то, что некоторые окошки называются иначе или некоторые элементы графического интерфейса выглядят немного не так, как в MS Office, - это дело привычки. Поработаете с недельку и привыкнете!
Нужно отметить, что существует Windows-версия OpenOffice. Поэтому у вас (или у вашей компании) есть отличный повод сэкономить на офисном пакете. Если нужна Windows и нельзя полностью перейти на Linux (потому что нет нужных программ, работающих в Linux), можно хотя бы установить Windows-версию OpenOffice и не покупать лицензионный MS Office. Бесплатно скачать Open Office можно по адресу:
http://www.openoffice.org
В состав Open Office входят следующие программы:
• Writer - аналог MS Word;
• Spreadsheet - аналог MS Excel;
• Impress - аналог MS PowerPoint;
• Base - аналог MS Access.
В Linux команды доступа ко всем приложениям OpenOffice помещаются в подменю Приложения→Офис. Правда, СУБД OO Base не устанавливается по умолчанию (она ведь не нужна большинству пользователей - зачем лишняя программа будет занимать место?). Для ее установки вы можете воспользоваться конфигуратором system-config-packages,
В этом разделе мы рассмотрим программу ОО Writer. Очень подробно мы ее обсуждать не будем, поскольку я предполагаю, что вы умеете работать в MS Word. He думаю, что пользователь, установивший Linux, не может работать с программами MS Office! Хотя из нашего правила есть исключении: сейчас многие ноутбуки продаются вместе с Linux (в целях удешевления конечного продукта), а не с Windows. А ноутбук может купить начинающий пользователь, который до этого практически не имел опыта работы с компьютером. В целом, именно на него и других начинающих пользователей и рассчитан материал данного и последующих разделов этой главы книги.
6.1.2. Ввод и редактирование текста
Запустите Writer с помощью команды меню Приложения→Офис→Word Processor. Откроется окно приложения, показанное на рис. 6.1.
Интерфейс Writer очень похож на интерфейс MS Word, поэтому вы сразу можете приступить к работе. Если же вы не знакомы с MS Word, тогда вам поможет рис 6.2, на котором представлено назначение основных функциональных кнопок панелей инструментов OpenOffice Writer.
Pиc. 6.1.
Текстовый процессор Writer Рис. 6.2. Основные функции панелей инструментов OpenOffice Writer
Выделять текст можно или с помощью мыши (нужно нажать левую кнопку мыши и, не отпуская ее, перемещать указатель мыши), или с помощью комбинации клавиш
‹Shift
+стрелки›. После того как текст будет выделен, вы сможете его отформатировать (изменить стиль, шрифт, размер шрифта, начертание и выравнивание) с помощью средств панели инструментов Форматирование (нижняя панель) или же скопировать/вырезать в буфер обмена с помощью средств панели инструментов Стандартная (верхняя панель). При работе с текстом вы можете использовать комбинации клавиш, приведенные в табл. 6.1.
Таблица 6.1. Основные комбинации клавиш при работе с текстом
| Комбинация клавиш |
Описание |
| ‹Shift+Cтpелки› (или клавиши управления курсором - ‹PgUp›, ‹PgDown›) |
Выделение текста |
| ‹Ctrl+A› |
Выделить весь документ |
| ‹Ctrl+C› |
Копировать вырезанный фрагмент а буфер обмена |
| ‹Ctrl+X› |
Вырезать вырезанный фрагмент в буфер обмена |
| ‹Ctfl+V› |
Вставить содержимое буфера обмена в документ (в текущую позицию курсора) |
| ‹Ctrt+B› |
Изменяет начертание шрифта: выделенный фрагмент текста становится жирным |
| ‹Ctrt+I› |
Изменяет начертание шрифта: курсив |
| ‹Ctrl+U› |
Сделать выделенный текст подчеркнутым |
| ‹Ctrl+L› |
Выравнивание абзаца по левому краю |
| ‹Ctrl+Е› |
Выравнивание абзаца по центру |
| ‹Ctrl+Р› |
Выравнивание абзаца по правому краю |
| ‹Ctrl+J› |
Выравнивание абзаца по ширине |
| ‹Ctrl+Z› |
Отмена предыдущего действия |
| ‹Ctrl+F› |
Открывает окна поиска и замены текста |
Если вы раньше работали с MS Word, то должны заметить, что комбинации клавиш - идентичные, что создает больший комфорт для бывших пользователей MS Office.
6.1.3. Вставка рисунков
В любом современном документе есть рисунки - будь-то диаграмма или же простой логотип компании. Давно прошли времена сугубо текстовых документов. Рисунки оживляют документ, делают его внешне привлекательнее.
Рис. 6.3. Окно вставки картинки
Вставить рисунок в документ можно из буфера обмена. Понятно, что предварительно вам нужно скопировать его туда из графического редактора или программы для просмотра картинок. Если вы не запускали никакие программы для работы с графикой, то намного проще вставить рисунок из файла, используя команду меню Вставка→Изображение→Из файла. Если у вас есть сканер, то вы можете отсканировать нужный вам рисунок и вставить его в документ (команда меню Вставка→Изображение→Сканировать). Чтобы вам было проще найти нужную картинку, установите флажок опции Предварительный просмотр (рис. 6.3).
Много интересных картинок вы найдете в каталоге /usr/share/pixmaps.
После вставки картинки будет выведена панель инструментов Изображение (рис. 6.4), с помощью которой можно выполнить целый ряд действий.
• Вставить новую картинку - если выбранная картинка вам не понравилась.
• Применить к имеющейся картинке один из графических фильтров - это позволит придать картинке весьма интересный и привлекательный вид.
• Выбрать режим отображения картинки - если вы будете печатать страницу на черно-белом принтере, нужно выбрать режим отображения в оттенках серого и просмотреть, как будет выглядеть изображение при печати (команда меню Файл→Предварительный просмотр страницы).
• Изменить составляющие цвета - хотите добавить больше красного цвета? Или больше синего? Используя инструмент Цвет панели инструментов Изображение, вы можете сделать это.
• Изменить степень прозрачности - иногда нужно сделать изображение немного прозрачным (например, при исполь зовании изображения в качестве фона).
• Отразить изображение по вертикали или по горизонтали - здесь комментарии излишни!
Рис.
6.4. Панель инструментов для
работы с изображениями Вы хотите оптимально расположить рисунок на странице? Тогда щелкните на нем правой кнопкой мыши и, используя команды подменю Расположить и Выравнивание раскрывшегося контекстного меню (рис. 6.5), разместите рисунок так, как вам нужно. Не бойтесь экспериментировать! Ведь всегда можно нажать ‹Ctrl+Z› для отмены предыдущего действия.
Рис. 6.5 Подменю Расположить и Выравнивание контекстного меню изображения
6.1.4. Работа с таблицами
Думаю, не нужно говорить о важности таблиц в современных документах. Ведь таблица считается одним из самых эффективных способов представления данных. Для работы с таблицами используются команды меню Таблица. Изучите это меню: оно содержит все операции, которые можно выполнить применительно к таблицам.
Для вставки новой таблицы нажмите комбинацию клавиш ‹Ctrl+F12› или выберите команду меню Таблица→Вставить - как вам больше нравится. Раскроется окно, в котором нужно указать требуемое количество строк и столбцов (рис. 6.6).
Рис. 6.6. Вставка новой таблицы После вставки таблицы будет выведена панель инструментов Таблица (рис. 6.7). Эта же панель будет отображаться, когда уже созданная ранее таблица будет выделена и станет активной. Инструменты панели Таблица дублируют команды меню Таблица: вы можете с одинаковым успехом использовать или панель инструментов, или меню Таблица.
Рис. 6.7. Панель инструментов Таблица Рассмотрим назначение кнопок панели Таблица (слева направо, сверху вниз).
• Таблица - позволяет добавить в документ новую таблицу.
• Стиль линии - изменяет стиль линий рамки таблицы.
• Цвет линий рамки - изменяет цвет рамки таблицы.
• Обрамление - изменяет обрамление таблицы.
• Цвет фона - изменяет цвет фона таблицы.
• Объединить ячейки - используется для объединения выделенных ячеек в одну большую ячейку.
• Разбить ячейки - разбивает выбранную ячейку на указанное количество новых ячеек (рис. 6.8).
• Оптимизация - автоматически подбирает размер столбцов и строк (перед этим нужно выделить всю таблицу или нужны столбцы/строки). Довольно удобная функция.
• По верху - выравнивает текст ячейки по верхнему краю.
• Центрировать - центрирует текст ячейки.
• По низу - выравнивает текст ячейки по нижнему краю.
• Вставить строку - добавляет новую строку.
• Вставить столбец - добавляет новый столбец.
• Удалить строку - удаляет строку.
• Удалить столбец - удаляет столбец.
• Автоформат - вызывает окно автоматического форматирования таблицы. Чтобы придать таблице желаемый вид, вам достаточно выбрать один из шаблонов, предлагаемых в этом окне.
• Свойства таблицы - вызывает окно изменения параметров таблицы, но вряд ли вы будете им пользоваться, поскольку все параметры таблицы можно установить с помощью панели инструментов, причем изменения, сделанные с помощью панели, видны сразу и вам не нужно щелкать на кнопке OK.
• Сортировать - сортировка ячеек таблицы (сначала нужно выделить строки, которые вы хотите отсортировать).
• Сумма - подсчитывает сумму выделенных ячеек, конечно, если в выделенных ячейках находятся числа.
Рис. 6.8. Разбивка ячейки
Панель Таблица предоставляет доступ не ко всем функциям меню Таблица. Так, "за кадром" осталась функция удаления всей таблицы (команда меню Таблица→Удалить→Таблица) и команда преобразования таблицы в текст или текста в таблицу (меню Таблица→Преобразовать).
6.1.5. Настройка автосохранения. Сохранение документа в формате MS Word
Обычно стандартные значения параметров программы ОО Writer изменять не требуется, поскольку они устраивают большинство пользователей. Но я все же рекомендую вам изменить интервал автосохранений. Ведь если вы быстро вводите данные, то за несколько минут успеете набрать довольно большой фрагмент текста. А тут свет выключили! Нехорошо!
Выберите команду меню Сервиса→Параметры, затем в окне Параметры перейдите в раздел Загрузка/Сохранение, Общие. По умолчанию установлен интервал автосохранения 5 минут, но лично я предпочитаю уменьшить это значение до двух минут (рис. 6.9).
Риc. 6.9. Параметры загрузки/сохранения документов Если у вас на работе установлен МS Word, вы можете и этом же окне выбрать формат файлов, используемый по умолчанию - Microsoft Word 97/2000/XP.
6.1.6. Печать документов
В печати документов нет ничего сложного, но перед тем, как выбрать команду меню Файл→Печать (или щелкнуть на кнопке Печать панели инструментов Стандартная), убедитесь, что принтер, на котором вы хотите распечатать документ, выбран в программе как принтер, используемый по умолчанию. Это можно сделать с помощью конфигуратора system-config-printer. Вообще-то, в диалоговом окне настройки печати (рис. 6.10) вы можете выбрать нужный вам принтер, но пользователи часто выполняют действии по распечатке документа в режиме "автопилота", щелкнув на кнопке Печать и не обращая внимания на то, какой принтер в данный момент выбран. В итоге вы не можете понять, почему документ не распечатан, хотя все было настроено и работает.
Рис. 6.10. Окно настройки параметров печати в приложениях ОреnOffiсе И еще: чтобы не было неприятной неожиданности, перед печатью документа воспользуйтесь функцией предварительного просмотра (команда меню Файл→Предварительный просмотр страницы) (рис. 6.11).
Рис. 6.11. Предварительный просмотр страницы
6.1.7. Установка Windows-шрифтов
В этом подразделе мы обсудим, как установить в системе Windows-шрифты. Подключитесь к Интернету и откройте браузер Firefox. С помощью браузера (или с помощью команды wget, d4x - не важно) вам нужно закачать пакет, размещенный по адресу http://dkws.org.ua/files/msttcorefonts-1.3-4.noarch. rpm.
Пакет будет сохранен на ваш рабочий стол. Для установки пакета дважды щелкните на пиктограмме пакета. Все шрифты будут автоматически установлены, останется только перезагрузить сервер шрифтов. Откройте терминал и введите команды:
su
/etc/init.d/xfs restart
Теперь вы сможете использовать установленные шрифты по всех программах OpenOffice.
6.2. Процессор электронных таблиц
6.2.1. Знакомство с Spreadsheet
Программа OpenOffice Spreadsheet является аналогом популярной программы работы с электронными таблицами MS Excel (рис. 6.12). Запустить Spreadsheet можно с помощью команды меню Приложения→Офис→Электронная таблица.
Интерфейс программы Spreadsheet очень напоминает интерфейс Excel, что помогает бывшим пользователям Excel быстро адаптироваться. Возможности Spreadsheet практически такие же, как и у Excel, во всяком случае потребности большинства пользователей будут удовлетворены. Программа Spreadsheet умеет работать со списками, формулами, с ее помощью вы легко сможете построить диаграмму.
Рис. 6.12. Основное окно программы ОО Spreadsheet Как и в случае с программой Writer, Spreadsheet не поддерживает макросы VBA, но поскольку макросы нужны далеко не всем пользователям, это не является слишком большим недостатком. Скорое всего, вы этого и не заметили бы, если бы я об этом не сказал.
Многие Linux-программы для работы с электронными таблицами не Поддерживают формат Excel. Поддерживается только внутренний формат, а из внешних - только формат Lotus 1-2-3 (и то не всегда) и CSV. CSV - это текстовый формат электронной таблицы. Он подходит только для сохранения данных, оформление ячеек, а также мультимедиа-объекты, внедренные в ячейки (диаграммы, рисунки, звуки) сохранить в этом формате нельзя. Некоторые программы поддерживают формат Excel с ограничениями, например, умеют открывать файлы в формате Excel, но сохраняют их в собственном формате.
Spreadsheet поддерживает формат Excel полностью. Это означает, что вы можете открыть Excel-файл и сохранить его в любом формате - или во внутреннем формате Spreadsheet, или в формате Еxсеl. Вы также можете создать новую таблицу и сохранить ее сразу в формате Excel. Проблем с поддержкой обычных файлов Excel, не содержащих макросов, у вас быть не должно.
В данной главе, как и в случае с ОО Writer, мы не будем подробно рассматривать работу со Spreadsheet, полагая, что вы уже умеете работать с Excel, Но все-таки мы рассмотрим основные моменты работы с электронными таблицами - создание формул, построение диаграмм и работу со списками.
6.2.2. Использование формул
Электронную таблицу можно воспринимать как большой и удобный калькулятор. В одни ячейки вы будете вводить значения, я в другие - формулы, при этом вы увидите все значения и готовые результаты расчетов. Удобно? Конечно, ведь на обычном калькуляторе виден только результат. Понятно, что формулы - это далеко не единственная полезная функция электронной таблицы, но, безусловно, одна из самых главных. Ведь первоначально электронные таблицы (имеются в виду не современные программы, а самые первые программы обработки электронных таблиц) создавались для финансистов и бухгалтеров, а им в первую очередь важны именно формулы - для проведения различных расчетов.
Формула всегда начинается со знака равенства. Вот примеры простых формул:
=2
=2+2
=2+2*2
=60-11
Не поленитесь и введите данные формулы в электронную таблицу. Вместо формул вы увидите результат их вычисления (рис. 6.13). Саму формулу можно увидеть только в строке формул.
В формулах рекомендуется использовать скобки для группирования операций. Рассмотрим формулу =2+2*2, Результат будет 6, потому что сначала выполняется умножение, а потом сложение (это закон математики, а не прихоть разработчиков). Чтобы получить 8, а не 6, вы должны использовать скобки: =(2+2)*2.
В формулах можно использовать имена ячеек. Вот, например. формула, которая умножает значение ячейки А4 на 2: =А4*2. Узнать или ячейки очень просто: в морской бой играли все. А если вы не знаете, о чем я, тогда взгляните на поле имени ячейки (см. рис. 6.13).
Рис. 6.13. Простейшие формулы Одна из наиболее часто используемых функций - это сумма. Чтобы ею воспользоваться, установите курсор на последнюю ячейку столбца, содержащего числовые значения, и щелкните на кнопке Сумма (рис. 6.14). Затем нажмите ‹Enter›, и вы увидите сумму всех ячеек столбца.
Pиc. 6.14. Используется функция Сумма: для ее применения нажмите ‹Enter› Рядом с кнопкой Сумма есть кнопка вызова мастера функций. Мастер функций позволяет выбрать одну из множества стандартных функций программы Spreadsheet (рис. 6.15). Функции в окне мастера распределены по категориям, поэтому вы без проблем выберете нужную ваш функцию из числа доступных.
Рис. 6.15. Окно мастера функции
6.2.3. Построение диаграмм
Диаграмма может оживить любой отчет: информация в графической форме (в виде графика или диаграммы) воспринимается намного лучше, чем в табличной форме.
Сегодня создание диаграмм - это обязательная функция любой программы обработки электронных таблиц. Ведь не секрет, что некоторые пользователи используют электронную таблицу только для построения диаграмм. Следовательно, если программа не умеет строить диаграммы, она мало кому нужна. Отсюда понятно, почему программа Spreadsheet умеет работать с диаграммами, причем ее мастер построения диаграмм очень напоминает аналогичного мастера из Ехсеl.
Чтобы разобраться с соответствующими инструментами Spreadsheet, давайте построим диаграмму с ее помощью,
• Выделите столбец или строку (или несколько столбцов и несколько строк), содержащие числовые значения. Щелкните на кнопке Вставить диаграмму панели инструментов.
• Указатель мыши изменит свою форму: вылепите место в таблице, куда вы хотите вставить диаграмму.
• Откроется окно Автоформат диаграмм (рис 6.16). На первом этапе построения необходимо уточнить диапазон обрабатываемых значений. Обычно он автоматически правильно устанавливается программой - ведь перед вызовом мастера диаграмм вы выделили нужные ячейки, но иногда могут потребоваться уточнения. Можно также указать, следует ли содержимое ячеек первой строки (или первого столбца) использовать в качестве подписей рядов данных. Для продолжения работы щелкните на кнопке Далее.
Рис. 6.16. Уточнение диапазона значений • Теперь необходимо выбрать тип диаграммы. Как правило, следует выбирать тот тип, который лучше всего отображает характер ваших данных. Например, для отображения динамики процесса (например, изменения стоимости акций) лучше использовать график, а для представления сведении о распределении долей рынка больше подходит круговая диаграмма. В наиболее общем случае можно воспользоваться универсальным типом - гистограммой (рис. 6.17).
Рис. 6.17. Выбор типа диаграммы • Далее мастер предложит выбрать один из доступных вариантов представления диаграммы выбранного типа. Укажите тот, который вам больше всего подходит (рис. 6.18).
Рис. 6.18. Вы6ор варианта диаграммы заданного типа • Следующий этап - ввод заголовка диаграммы и установка некоторых её параметров (рис. 6.19).
Рис. 6.19. Задание дополнительных параметров диаграммы • В завершение построения щелкните на кнопке Готово: диаграмма будет помещена в заранее отведенное для нее место на рабочем листе (рис. 6.20).
Рис. 6.20. Готовая диаграмма помещена на рабочий лист Созданную диаграмму можно модифицировать любым желаемым образом. Например, можно выделять отдельные элементы диаграммы и изменять их цвет. Так, на рис. 6.21 я выделил точку данных (так называется элемент диаграммы), а затем щелкнул на нем правой кнопкой мыши. Далее я выбрал в открывшемся контекстном меню команду Свойства объекта.
Рис. 6.21. Выделение точки данных Для изменения цвета выбранной точки данных перейдите в раскрывшемся окне на вкладку Область и поделите желаемый образец цвета (рис. 6.22). Щелкните на кнопке ОК.
Рис. 6.22. Изменение цвета точки данных
6.2.4. Работа со списками
Довольно часто пользователям приходится работать со списками. Вот, например, список оборудования, подлежащего списанию (табл. 6.2).
Таблица 6.2. Список списываемого оборудования
| Инвентарный номер |
Наименование |
| ИК7-0 |
Монитор LG |
| ИК7-1 |
Системный блок |
| ИК7-2 |
Клавиатура |
| ИК7-3 |
Мышь |
| ИК19 |
Концентратор Intel |
Посмотрите, как будет выглядеть этот список в окне программы Spreadsheet сразу после его ввода (рис. 6.23). Согласитесь, что его вид мало привлекателен, да и работать с таким списком неудобно.
Рис. 6.23. Исходный вид списка оборудования в окне Spreadsheet Первым делом щелкните на границе, разделяющей столбцы В и С - ширина столбца В автоматически увеличится так, чтобы поместился самый длинный текст, введенный в его ячейки (рис. 6.24). Теперь список выглядит уже лучше: что значит даже такая маленькая деталь!
Рис. 6.24. Автоматическое увеличение ширины столбца В Рано или поздно этот список разрастется, и заголовок уже не будет виден. Но не хотелось бы, что6ы при дальнейшей работе заголовок исчез из виду. Чтобы решить поставленную задачу, нужно
зафиксировать заголовок списка. Для этого поместите курсор в ячейку А2 (но не А1!) и выберите команду меню Окно→Фиксировать. Под левой строкой появится черная линия - это означает, что первая строка теперь используется как заголовок списка. Желательно также выделить заголовок полужирным начертанием или установить для него цвет фона ячеек, отличный от белого - так он будет сильнее выделяться в списке (рис. 6.25).
Вот теперь с нашим списком можно работать. Над списками в основном осуществляется две операции: сортировка и фильтрация. Для сортировки списка нужно выбрать команду меню Данные→Сортировка. Обратите внимание: программа сама выделит список и определит его заголовок (рис. 6.26). Вам нужно будет только выбрать поле, по которому требуется выполнить сортировку, и задать тип сортировки: по убыванию или по возрастанию.
Puc. 6.25. Заголовок зафиксирован. Визуально выделяем полужирным шрифтом Рис. 6.26. Сортировка списка
Теперь рассмотрим фильтрацию. При использовании фильтра в рабочем листе отображаются только те записи списка, которые соответствуют заданному пользователем условию. Для демонстрации работы фильтра добавьте к списку еще один столбец с названием Цена (табл. 6.3).
Таблица 6.3. Расширенный список списываемого оборудования
| Инвентарный номер |
Наименование |
Цена |
| ИК7-0 |
Монитор LG |
100 |
| ИК7-1 |
Системный блок |
120 |
| ИК7-2 |
Клавиатура |
2 |
| ИК7-3 |
Мышь |
2 |
| ИК19 |
Концентратор Intel |
10 |
Из сказанного выше следует, что если установить фильтр по полю Цена с условием Цена ›= 100, то в рабочем листе будут показаны только две записи - для монитора LG и системного блока. Проверим это. Выберите команду меню Данные→Фильтр→Стандартный фильтр - раскроется окно задания условия фильтра. В списке Имя Поля выберите поле Цена и установите условие фильтра в списках Условие и Значение (рис. 6.27). Щелкните на кнопке ОК. Как видите, наши предположения оправдались.
Иногда довольно удобно использовать автоматический фильтр - в этом случае функции фильтра будут встроены в заголовок списка (рис. 6.28), и вам не придется каждый раз открывать окно настройки фильтра. Автоматический фильтр особенно удобен, когда вы часто пользуетесь фильтрами. Для установки такого фильтра выберите команду меню Данные→Фильтр→Автоматический фильтр.
Рис. 6.27. Установка условия фильтра Рис. 6.28. Списку на рабочем листе назначен автоматический фильтр
6.2.5. Сохранение документов в формате Excel
Если вы часто работаете с электронными таблицами в формате Excel, тогда установите формат Excel в качестве формата по умолчанию. Для этого выберите команду меню Сервис→Параметры, в раскрывшемся окне перейдите в раздел Загрузка/Сохранение→Общие, выберите в списке Тип документа значение Электронная таблица, а в списке Всегда сохранять как - значение MS Excel 97/2000/ХР (рис. 6.29).
Pиc. 6.29. Выбор формата электронных. таблиц по умолчанию
6.3. GIMP: редактор растровой графики
6.3.1. Аналог Adobe Photoshop?
GIMP (The GNU Image Manipulation Program) - лучший редактор растровой графики в Linux. Довольно часто GIMP называют заменой популярному редактору Photoshop, хотя сами разработчики GIMP против такого сравнения, поскольку у них никогда не было цели создать именно "аналог" Photoshop. Просто GIMP- это ещё один, довольно удачный, редактор растровой графики (рис. 6.30).
Давайте вкратце разберемся, что же умеет, а что не умеет делать GIMP. О поддержке практически всех растровых форматов я не говорю - это само собой разумеется.
С помощью всевозможных фильтров, масок, инструментов и слоев GIMP позволяет:
• убирать искажения, внесенные оптикой;
• кадрировать и поворачивать фотографии;
• изменять размер фотографий;
• удалять эффекты запотевшей или пыльной оптики;
• выравнивать "заваленный" горизонт;
• имитировать различные типы дальтонизма (протанопия, дейтеронопия, тританопия);
• выполнять гамма-коррекцию;
• корректировать контрастность и т.д.
Рис. 6.30. Окно программы GIMP При работе с фотографиями вам также пригодится довольно большой выбор инструментов для цветокоррекции: гистограммы яркости, фильтр постеризации, баланс цветов, регулировка яркости-контраста, тона-насыщенности и др.
Но не нужно думать, что GIМР предназначен только для обработки фотографий (хотя для этого он используется чаще всего): в нем есть несколько инструментов для рисования, поддерживаются свободно масштабируемые кисти и графические планшеты.
Вы можете загрузить (или даже написать самостоятельно) сценарии для GIMP, позволяющие автоматизировать процесс работы с программой. Правда, в GIMP отсутствуют встроенные средства записи сценариев, но зато для разработки собственных сценариев не придется учить какой-нибудь особенный язык программирования: написать сценарий: дли GIMP можно на следующих языках: С#, Perl, Java, Tсl, TinyScheme (Script-Fu), Python, Ruby, Согласитесь, довольно удобно писать сценарии на языке, который уже знаешь, без необходимости тратить время на изучение другого, пусть и даже простого, языка.
Как видите, GIMP довольно удобный и многофункциональный графический редактор. Однако большинство пользователей используют его только для обработки фотографий, поэтому в этом разделе мы поговорим именно об этом, а точнее рассмотрим выполнение трех следующих операций.
•
Изменение размера - довольно части приходится изменять размер фотографии, например, для ее передачи по Интернету. Так, полноразмерная фотография (2816х2112 точек, формат JPEG, 24 bpp) занимает примерно 1,3 Мбайт, Если уменьшить размер фотографии до 800 х 600, что вполне достаточно для экранного просмотра, то файл будет занимать всего 160 Кбайт, Экономия налицо.
•
Кадрирование - т.е. вырезание части фотографии. Например, фотография довольно большая, а вы хотите распечатать только определенную ее часть. Если просто уменьшить размер изображения, то интересующая часть изображения будет плохо видна. Но можно вырезать нужную часть фотографии, при этом она займет немного места и будет нормально видна на экране, Впрочем, о кадрировании мы еще поговорим.
•
Поворот - вы сделали вертикальную фотографию и хотите отправить ее своим знакомым по Интернету. Для печати разницы нет - вертикальная или горизонтальная фотография, а вот при просмотре на экране компьютера будет удобнее развернуть фотографию по вертикали.
6.3.2. Использование GIMP
6.3.2.1. Поворот
Предположим, что вы сделали вертикальную фотографию, но при просмотре она будет отображаться как горизонтальная. Для удобного просмотра на экране компьютера фотографию нужно повернуть.
Запустите GIMP и откройте (комбинация клавиш ‹Ctrl+O›) нужную фотографию (рис. 6.31). Окно открытия файла в GIMP снабжено областью предварительного просмотра, поэтому вы быстро найдете нужную фотографию.
Рис. 6.31. Открытие фотографии в GIMP Для поворота используется инструмент Вращение. Активизировать его можно с помощью комбинации клавиш ‹Shift+R› или с помощью соответствующей кнопки на панели инструментов GIMP (рис. 6.32).
Риc. 6.32. Инструмент Вращение и загруженная фотография После активизации данного инструмента вы можете управлял поворотом фотографии с помощью мыши или установить угол поворота с клавиатуры (рис. 6.33). После того как нужный угол поворота будет задан, щелкните на кнопке Повернуть. Все, теперь можно сохранять изображение.
Рис. 6.33. Использование инструмента поворота
6.3.2.2. Кадрирование
Кадрирование рассмотрим на примере другой фотографии - в окне GIMP загружена фотография общего плана (рис. 6.34). Допустим, вам нужно вырезать фотографию отдельно стоящей машины.
Рис. 6.34. "Подопытная" фотография для операции кадрирования Активизируйте инструмент Кадрирование - с помощью комбинации клавиш ‹Shift+C› или с помощью кнопки панели инструментов (рис. 6.35).
После этого выделите область фотографии, которую необходимо вырезать (рис. 6.36)
. Как только область будет выделена, дважды щелкните на ней - и вы увидите результат операции кадрирования (рис. 6.37).
Рис. 6.35. Кнопка инструмента Кадрирование на панели инструментов GIMP Рис. 6.36. Использование инструмента Кадрирование для выделения части изображения Будьте осторожны: инструмент Кадрирование работает с файлом оригинала изображения, а не с его копией. Поэтому сохранять результат кадрирования нужно с помощью команды Файл→Сохранить как, а не Файл→Сохранить, иначе вы перезапишете файл исходной фотографии.
Рис. 6.37. Результат кадрирования
6.3.2.3. Изменение размера
Рис. 6.38. Изменение размера изображения Изменение размера изображения в
GIМP называется
масштабированием. Выберите инструмент Масштаб (он выделен на рис. 6.38) и щелкните на изображении, размер которого требуется изменить.
Раскроется окно Масштаб, в котором следует ввести новый размер изображения в пикселях.
Если вы не знаете, какой точно размер изображения вам нужен, можно установить новый размер в процентах от старого размера. Для этого выберите в раскрывающемся списке (справа) значение Проценты и введите в нами Ширина и Высота новый размер в процентах (рис. 6.39).
Рис. 6.39. Установка нового размера в процентах Когда новый размер будет задан, щелкните на кнопке Изменить - все, размер изображения изменен и вы можете сохранить его.
6.3.3. Повод немного сэкономить
Далеко не все компании (да и домашние пользователи) могут позволить себе полностью перейти на Linux, поскольку для Linux написаны далеко не все аналоги Windows-программ. Для некото-рыл программ вообще нет аналогов, а для некоторых они есть, но по функциональности до Windows-версий им далеко, 8 первую очередь все вышесказанное касается САD-систем, бухгалтерии (про Etersoft знаю, но использование эмулятора не считаю выходом из положения) и, конечно, игр.
Однако все же есть возможность сэкономить за счет использования программ Open Source. Как мы уже знаем, офисный пакет MS Office можно с успехом заменить Windows-версией пакета OpenOffice: она свободно доступна на сайте openoffice.org. Кстати, последняя версия OpenOffice дли меня удобнее, чем MS Office. Только потому, что она сама "пишет" за меня: если в документе встречается слово, которое я начинаю писать, мне достаточно нажать ‹Enter›, и это слово напишет за меня приложение Open Office. Впрочем, вы уже успели познакомиться с этой функцией.
Рис. 6.40. Windows-версия программы GIMP Кроме приложений OpenOffice, также можно загрузить Windows-версию программы GIMP - по адресу htttp:/gimp-win.sourceforge-net/. Это избавит вас от необходимости покупать Photoshop или другие программы для обработки фотографий, например, ACDSee. Понимаю, что и большинстве случаев их и так никто не покупает (потому что используются пиратские версии), но GIMP позволяет найти выход из положения, когда нужно легализовать установленное программное обеспечение, И чем больше бесплатных программ вы установите на своем компьютере, тем больше денег сэкономите. На рис. 6.40 представлена Windows-версия программы GIMP.
6.4. Обмен файлами с Bluetooth-устройствами
6.4.1. Технология Bluetooth
Название технологии Bluetooth переводится немного смешно - "голубой зуб". Но это так, к слову. А вообще данная технология используется для передачи данных через радиоканал на час-тюте 2,45 ГГц. Разработчиками данной технологии являются компании Ericsson, IBM, Intel, Nokia и Toshiba.
Радиус действия устройств Bluetooth обычно не превышает 10 метров. Этого вполне достаточно, чтобы передавать данные "по воздуху" в пределах одного офиса - данные свободно "пересекают" стены и в то же время не уйдут слишком далеко,
Во второй половине 2004 года началась поставка устройств, поддерживают их Bluetooth 1.2 (хотя сама спецификация появилась в ноябре 2003 года). До этого использовалась спецификация Bluetooth 1.1. Предпочтительнее использовать устройства, поддерживающие Bluetooth 1.2, поскольку в этой версии улучшена защищенность передачи сигнала в диапазоне 2,4 ГГц от интерференции с сигналами других устройств, которые используют тот же диапазон частот. Спецификация 1.2 полностью поддерживает спецификацию 1.1, т.е. полностью совместимая с ней.
Сейчас технологию Вluetooth поддерживают вcе современные мобильные устройства - ноутбуки, карманные компьютеры, мобильные телефоны. Стационарные компьютеры не всегда оснащены адаптером Bluetooth, но обычно это не проблема, поскольку USB-адаптер Bluetooth стоит довольно дешево - всего 10-15 долларов.
6.4.2. Bluetooth и Fedora 8
Fedora 8 значительно лучше работает с Bluetooth, чем предыдущие версии. Для настройки параметров Bluetooth выберите команду меню Система→Параметры→Интернет и сеть→Bluetooth Preferences (рис. 6.41).
Puc. 6.41. Параметры Bluetooth В окне настройки параметров Bluetooth нужно включить автоматическое распознавание класса устройства (флажок Select class of device automatically) и с помощью переключателя Notification Area указать, когда значок Bluetooth будет отображаться в области уведомлений:
• Never display icon - никогда;
• Only display when adapter present - только при наличии Bluetooth-адаптера;
• Always display icon - всегда.
Понятно, что наиболее оптимальный вариант - второй, т.е. значок Bluetooth будет отображался только, если в системе есть соответствующий адаптер.
Затем запустите программу, предназначенную для организации обмена данными с Bluetooth-устройствами - команда меню Приложения→Системные→Общий доступ к файлам по Bluetooth. Данная программа (иначе она называется bluetooth-applet) после запуска будет свернута в область уведомлений (рис. 6.42).
Pиc. 6.42. Общий доступ к файлам по Bluetooth активизирован Далее работа с Bluetooth-устройствами не вызывает особого труда. При подключении такого устройства вы получите соответствующее сообщение, а далее сам обмен файлами можно будет производить с помощью стандартного файлового менеджера Nautilus.
В предыдущих версиях Fedora настройка Bluetooth-соединения выполнялась сложнее. Прочитать о настройке Bluetooth в Fedora 6 можно по адресу: http://www.linuxcenter.ru/lib/articles/ hardware/phone_bluetooth.phtml
6.4.3. Подключение мобильного телефона. Отправка SMS
Для работы с мобильным телефоном предназначена программа gnome-phone-manager. С ее помощью можно отправлять SMS-сообщения с компьютера через ваш мобильный телефон. Для запуска этой программы нажмите ‹Alt+F2›, введите gnome-phone-manager и нажмите ‹Enter›.
После запуска программы в области уведомлений появится новый значок. Щелкните на нем правой кнопкой мыши и выберите в раскрывшемся контекстном меню команду Параметры. В окне настройки параметров (рис. 6.43) можно выбрать, как мобильный телефон будет подключаться к компьютеру.
• Bluetooth - по Bluetooth. Щелкните на кнопке Click to select device для выбора Bluetooth-устройства.
• Serial port 1 (/dev/ttyS0) - телефон подключен к последовательному порту СОМ1.
• Serial port 2 (/dev/ttyS1) - телефон подключен к порту COM2.
• Infrared (/dev/ircomm) - под ключение через инфракрасный порт.
• Other port - другой порт, например, /dev/tty/USB0, если телефон подключается по USB.
Рис. 6.43. Параметры npoграммы gnome-phone-manager После подключения телефона к компьютеру для отправки SMS-сообщения щелкните правой кнопкой мыши на значке программы gnome-phone-manager и выберите в раскрывшемся контекстном меню команду Send Message.
7.1. Антивирус ClamAV
7.1.1. Вирусы в Linux
Первым делом нужно разрушить миф о том, что в Linux нет вирусов. Вирусы в Linux есть. По данным сайта www.virus-list.com для Linux написано всего 1111 вирусов (на момент написания этих строк).
Почему "всего"? Потому что по данным того же www. viruslist.com всего вирусов и их разновидностей существует почти полмиллиона (!). Но 1111, согласитесь, тоже немало.
Другое дело, что ни один Linux-вирус не создал масштабной "эпидемии". При соблюдении должных правил безопасности вирусы в Linux вообще не страшны, что это за правила? Как мы помним, в Windows нужно обязательно проверять все полученные извне файлы специальной программой-антивирусом; не запускать программ, назначение которых не совсем понятно; не посещать сайты с крэками, эротикой и серийными номерами для программ, поскольку на них больше всего вероятность "поймать" вирус.
В Linux правило одно: не работать под именем пользователя root. Если вы будете работать как обычный пользователь, у которого практически нет полномочий, то вирусы вам не страшны. Даже если на наш компьютер проникнет злобный и страшный вирус, способный работать в среде Linux, особого вреда вашей системе он не сможет причинить только потому, что он будет запушен с правами обычного пользователя, под которым вы всегда работаете. А эти права ничтожно малы, чтобы причинить вред всей системе в целом.
А вот если вирус запущен от имени пользователя root (вы его "поймали", когда работали под именем root), тогда вирус сможет разнести систему в пух и прах! Хотя, учитывая, что для Linux написано чуть больше 1000 вирусов, большая часть из которых не вышла за пределы тех "лабораторий", в которых была создана, по вероятность разнести систему самому ("нечаянно") гораздо выше, чем вероятность заражения вирусом.
Конечно, для Linux написаны вирусы, которые распространяются по сети самостоятельно, например, от сервера к серверу, и для им работы совсем не нужно вмешательство пользователя (ведь классический сценарий следующий - приходит "зараженный" объект, например, программа, документ, письмо, и пользователь должен его открыть, чтобы кол вируса был запушен на выполнение). Но такие вирусы тоже особо не страшны по следующим причинам,
• Во-первых, они рассчитаны на дыры в старых сетевых службах, которые уже давно "залатаны".
• Во-вторых, на большинстве рабочих станций (домашние и офисные компьютеры) данные сетевые службы, чаще всего, не запущены.
• В-третьих, все современные дистрибутивы по умолчанию активируют брандмауэр, который закрывает любой доступ извне (кроме, правда SSH, но по протоколу SSH вирусы не paспространяются).
Так для чего же нужен антивирус в Linux? Прежде всего, для проверки файлов, скачанным с Интернета, Ведь вы можете скачать файл, содержащий вирус, а потом отправить его своим знакомым, компьютеры которых будут заражены вирусом. Вы даже и знать не будете, что в файле вирус. Понятно, что вы заразили их компьютеры не намеренно, но все же их заразили вы.
А теперь возьмем другой сценарий. Вам кто-то может прислать по электронной почте документ с вирусом. Пока OpenOffice не подвержен обычным макровирусам MS Office, но опять-таки вы можете передать данный файл Windows-пользователям. Результат будет тем же, что и в предыдущем случае.
Поэтому антивирус для Linux нужен. Другое дело,
какой антивирус установить. Для среды Linux разработаны Linux-версии популярных антивирусов AVP (www.kaspersky.ru) и DrWeb (www.drweb.com), но они платные. Если вы хотите использовать AVP или DrWeb, то всегда сможете их купить на приведенных выше
сайтах. Они поставляются с подробной документацией, поэтому рассматривать их здесь мы не будем.
Вместо коммерческих антивирусов мы рассмотрим бесплатный антивирус ClamAV. Можно сказать, что ClamAV - это "стандартный" антивирус Linux, поскольку он входит в состав большинства современных дистрибутивов и в некоторых случаях даже устанавливается по умолчанию. А раз это стандарт, то вы должны знать, как его использовать.
7.1.2. Установка и первое обновление антивирусных баз данных
Установить ClamAV очень просто - достаточно установить пакет clamav:
# уum install clamav
В этом пакете находится все необходимое - демон clamd, сканер clamscan и программа обновления антивирусных Саз clamav. Антивирусные базы в комплект поставки не входят; их нужно загрузить из Интернета, но это даже к лучшему - ведь все равно нам пришлось бы после установки пакета со
старыми базами обязательно их обновлять.
Сразу после установки пакета нужно запустить демон clamd:
# service clamd start
Система ответит:
Starting Clam AntiVirus daemon [Ok]
Мы уже знаем, что такое служба (сервис) и не раз включали/отключали службы с помощью конфигуратора system-config-services. Так вот, знайте: в Linux правильнее называть службы демонами - этот термин появился раньше.
После этого нужно запустить программу обновления антивирусных баз:
# freshclam
ClaimAV update process started at Mon Nov 26 6:07:23 2007
Downloading main.cvd [100%]
main.cvd updated (version: 46, sigs: 133163, f-level: 20, builder: sven.)
Downloading daily.cvd [100%]
daily.cvd updated (version: 4683, sigs: 30600, f-level: 21, builder: ccordes)
Database updated (163763 signatures) from database.clamav.net (IP: 217.173.238.34)
Обратите внимание: команду freshclam нужно вводить
после clarmd. Если демон clamd не будет запущен, то вы получите предупреждение о том, что демон clamd не уведомлен об обновлении баз:
WARNING: Clamd was NOT notified: Can't connect to clamd on 127.0.0.1:3310
connect(): Connection refused
Демон clamd и программа freshclam будут запускаться, автоматически при запуске компьютера, поэтому вам больше не нужно будет вводить ни команду запуска clamd, ни команду обновления баз данных. Только позаботьтесь о том, чтобы соединение с Интернетом устанавливалось автоматически - тогда можно быть уверенным в том, что ваши базы всегда находятся в актуальном состоянии.
7.1.3. Проверка файлов и каталогов
Для проверки файлов и каталогов используется сканер clam-scan. Вот как можно проверить подозрительный файл file.bin:
clamscan file.bin
Для проверки каталогов желательно указывать опцию -r, чтобы заодно были проверены все их подкаталоги:
clamscan -r /home/den
А вот проверку корневой файловой системы лучше проводить от имени пользователя root, потому что у обычного пользователя есть доступ не ко всем объектам файловой системы:
# clamscan -r /
В процессе проверки для каждого файла будет выведен отчет - Ok или сообщение о том, что найден вирус. По окончанию проверки вы увидите общий отчет примерно такого вида:
Known viruses; 161763
всего известных вирусов в базе
Engine version: 0.91.2
версия ClamAV
Scanned directories: 552
количество просксанированных каталогов
Scanned files: 997
количество просканированных файлов
Infected files: 0
инфицировано файлов
Data scanned: 75.22 MB
общий объем просканированных файлов
Time: 57.023 sec (0 m 57 s)
общее время сканирования
По умолчанию clamscan не проверяет почтовые ящики и архивы. Для проверки почтовых ящиков используется опция -r-mbох:
# clamscan -r-mbox /var/spool/mail
Для проверки архивов нужно указать опции -unzip, -unrar, -tgz:
# clamscan -tgz -unzip -unrar -r /home
Если программа не сможет найти необходимый архиватор, тогда вам нужно указать его так:
# clamscan -unrar=/путь/rar -r /home
7.1.4. KlamAV- графический интерфейс для ClamAV
В Windows мы привыкли, что у антивируса должен быть графический интерфейс. Для ClamAV тоже был создан графический интерфейс - программа KlamAV, скачать которую можно по адресу:
http://sourceforge.net/projects/klamav
KlamAV - это всего лишь оболочка (рис. 7.1), и для ее работы необходимо, чтобы была установлена сама программа антивирус ClamAV. Использовать программу-оболочку достаточно просто, поэтому вы разберетесь с ней и без моих комментариев.
У KlamAV есть одно ограничение: данная программа написана с использованием KDE, поэтому пользователям GNOME придется дополнительно установить если не всю KDE, то большую ее часть.
Рис. 7.1. Программа KlamAV
7.1.5. ClamAV для Windows
Если вам нужен бесплатный антивирус для Windows, тогда можно обратить внимание на ClamAV для Windows. Посетите следующие сайты.
• http://www.sosdg.org/clamav-win32 - здесь вы можете скачать консольную версию антивируса ClamAV, работающую в Windows Данная лpoгpaммa полностью аналогична Linux-вepcии (те же опции, тот же принцип работы).
• http://www.clamwin.net - графическая версия антивируса (эти не оболочка, а полноценная версия), работающая в среде Windows (рис. 7.2). Программа по умолчанию сканирует файлы только по вашему запросу, НО может интегрироваться в MS Outlook для проверки почтовых вложений и в Internet Еxрlоrеr (и последнем появится новая команда контекстного меню - Проверить на вирусы).
Рис. 7.2. ClamWin - версия ClamAV для Windows
7.2. Подробно о загрузке Linux
7.2.1. Загрузка компьютера
Рассмотрим первоначальную загрузку компьютера с момента включения питания. Вы нажимаете кнопку Power на корпусе компьютера и в его оперативную память загружается программа POST (Power On Self Test) - программа самотестирования компьютера при включении питания. Она хранится в ПЗУ компьютера.
Программа тестирования первым делом проверяет видеокарту и монитор, затем - запускает тест оперативной памяти, далее проверяются носители данных и другие устройства (это зависит от версии BIOS и "наворотов" материнской платы). После успешного завершения всех проверок управление передается программе-загрузчику.
Задача загрузчика - отыскать устройство, содержащее программу-загрузчик операционной системы, считать найденный загрузчик с носителя в память компьютера и передать ему управление. Порядок поиска загрузочного устройства задается в программе первоначальной настройки компьютера - SETUP. Обычно первое загрузочное устройство - это жесткий диск, CD-ROM и другие сменные носители выступают в роли первых загрузочных устройств редко - как правило, в случае сбоя, когда нужно переустановить операционную систему или восстановить ее, загрузившись с загрузочного CD/DVD.
Загрузчик операционной системы обычно помещается в главную загрузочную запись жесткого диска - MBR (Master Boot Record). После передачи управления загрузчику ОС дальнейшее развитие событии зависит только от этого загрузчика.
Поскольку на вашем компьютере, помимо Fedora, скорее всего, также установлена Windows ХР или Windows Vista, та вы будете иметь дело с двумя загрузчиками - NT Loader (загрузчик Windows) и GRUB (загрузчик Linux). В других дистрибутивах Linux вместо GRUB может использоваться другой загрузчик, например, LILO или ASPLoader. Но в Fedora используется GRUB, поэтому здесь мы будем рассматривать только этот загрузчик.
Как уже было отмечено в этой книге, заставить NTLoader загружать Linux можно, но это не стоит потраченного времени и сил, поэтому проще установить сначала Windows, а затем - Linux. В этом случае при загрузив компьютера GRUB отобразит меню, состоящее из нескольких вариантов загрузки Linux (обычная загрузка и безопасный режим) и одного варианта загрузки Windows. При выборе пункта меню Windows управление будет передано загрузчику NTLoader, который, к свою очередь, если установлено несколько версий Windows, отобразит меню, позволяющее выбрать ту или иную версию Windows (например, ХР или Vista).
7.2.2. Загрузка Linux
7.2.2.1. Корневая файловая система и система инициализации
Итак, вы выбрали загрузку Linux. Загрузчик GRUB загрузит ядро, а затем передаст ему параметры и управление. Подробно
весь процесс загрузки ядра рассматриваться здесь не будет. Вам достаточно знать следующее: ядру при загрузке нужно сделать две важные веши - "подмонтировать" корневую файловую систему и запустить систему инициализации.
Название раздела, содержащего корневую файловую систему, передается ядру в виде параметра root, например:
root=/dev/hda5
Если ядро не может "подмонтировать" корневую файловую систему, то оно переходит я режим паники, Загрузка системы останавливается, а на экране появляется сообщение:
kernel panic: VFS: unable to mount root fs
Система инициализации указывается с помощью параметра init. Если параметр init не указан, то используется система инициализации /sbin/init. Вообще init - это далеко не единственная система инициализации. Например, в Ubuntu используется система инициализации upstart, а в некоторых других дистрибутивах используется система init-ng (init Nest Generation).
7.2.2.2. Вывод сообщений ядра: программа dmesg
При загрузке ядра на экран выводятся некоторые сообщения. На современных компьютерах они выводится и сменяются настолько быстро, что вы, как правило, не успеете их прочитать. Если вам интересно, какие именно сообщения выводятся при загрузке ядра, откройте терминал и введите команду:
dmesg | less
В листинге 7.1 приведены не все сообщения ядра: полный вывод сообщений ядра занимает много места и я не вижу смысла приводить его полностью. Мои комментарии выделены полужирным шрифтом: так вам будет проще ориентироваться в выводе ядра.
Листинг 7.1. Вывод сообщений ядра Linux при загрузке (Fedora 7)
# Версия ядра и версия gcc, с помощью которого собиралось ядро
Linux version 2.6.21-1.3194.fc7 (kojbuilder@xenbuilder4.fedora.phx.ewdhat.com) (gcc version 4.1.2. 20070502 (Red Hat 4.1.2-12)) #1 SMP Wed May 23 22:35:01 EDT 2007
BIOS-provided physical RAM map:
sanitize stare
sanitize end
copy_e820_map() start: 00000000000000000 size: 000000000009f800 end:00000000009f800 type: 1
copy_e820_map() type is E820_RAM
copy_e820_map() start: 000000000009f800 size: 000000000009f800 end: 0000000000009f800 type: 1 copy_e820_maр() start: 0000000000000000 size: 000000000009fc00 end: 000000000009fc00 type: 1
…
BIOS-е820; 0000000000000000 - 00000000009fcOO (usable)
BIOS-e820: 00000000ffff0000 - 0000000l00000000 (reserved)
OMB HIGHMEM available.
# Всего установлено 768 Мбайт оперативной памяти (512 + 256)
767 MB lowmem available.
Entering add_active_range(0, 0, 196592) 0 entriеs of 256 used
Zone PFN ranges:
DMA 0 -› 4096
Normal 4096 -› 196592
HighMem 196592 -› 196592 early_node_map[1] active PFN ranges
0: 0 -› 196592
On node 0 totalpages: 196592
DMA zone: 32 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 4064 pages, LIFO batch: 0
Normal zone; 1503 pages used for memmap
Normal zone: 190993 pages, LIFO batch: 31
HighMem zone: 0 pages used for memmap
DMI 2.2 present.
# Параметры ACPI (Advanced Configuration and Рower Interface):
ACPI: RSDP (v000 VIA694) @ 0x000f6a20
ACPI: RSDT (v001 VIA694 АWRDАСРI 0x42302e31 AWRD 0x00000000) @ 0x2fff3000
AСРI: FADT (v001 VIA694 AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x2fff3040
ACPI: DSDT (v001 VIA694 AWRDACPI 0x00001000 MSFT 0x0100000e) @ 0x00000000
ACPI: PM-Timer IO Port: 0x4008
Allocating PCI resources starting at 40000000 gap: 30000000:cfff0000)
# Частота процессора:
Detected 1595.598 MHz processor.
Built 1 zonelists. Total pages: 195057
# Параметры, переданные ядру
Kernel сommand line: root=/dev/hda6 ro locale=ru_RU
# Локальный контроллер прерываний APIC (Advanced Programmable Interrupt Controller) отключен:
Local APIC disabled by BIOS - you can enable it with "lapic"
mapped APIC to ffffd000 (0160c000)
Enabling fast FPU save and restore… done.
Enabling unmasked SIMD FPU exception support… done.
Initializing CPU#0
PID hash table entries: 4096 (Order: 12, 16384 bytes)
# Консоль: цветная, 80x25
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
# Информация об использовании памяти при загрузке
Memory: 768064k/786368k available (l992k kernel code, 17644k reserved, 893k data, 328k init, 0k highmem)
# Карта виртуальной памяти ядра
virtual kernel memory layout:
fixmap: 0xfff4e000 - 0xfffff000 (708 kB)
pkmap: 0xff800000 - 0xffc00000 (4096 kB)
vmalloc: 0xf0800000 - 0xff7fe000 (239 MB)
lowmem: 0xc00000000 - 0xefff0000 (767 MB)
.init: 0xc03d7000 - 0xc0429000 (328 kB)
.data: 0xc02f2264 - 0xc03d16d4 (893 kB)
.text: 0xc010000 - 0xc02f2264 (1992 kB)
Checking if this processor honours the WP bit even in supervisor mode… Ok.
Calibrating delay using timer specific routine… 3193.85 BogoMIPS (lpj = 6387715)
Security Framework v1.0.0 initialized
# SELinux выключена
SELinux: Disabled at boot.
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383f9ff c1c3f9ff 00000000 00000000 00000000 00000000 00000000
# Кэш первого и второго уровня:
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 64K (64 bytes/line)
CPU: After all inits, caps: 0383f9ff c1c3f9ff 00000000 00000420 00000000 00000000 00000000
…
ACPI: setting ELCR to 0200 (from 0e28)
# тип и производитель процессора
CPU0: AMD Duron(tm) processor stepping 01
# Материнская плата обычная, не SMP
SMP motherboard not detected.
# Локальный контроллер APIC не найден, используется его эмуляция
Local APIC not detected. Using dummy APIC emulation.
# Всего один процессор
Brought up 1 CPUs
Booting paravirtiualized kernel on bare hardware
Time: 7:33:12 Date: 09/03/107
NET: Registered protocol family 16
# Настраиваются шины EISA, PCI
EISA bus registered
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfb3e0, last bus=1
PCI: Using configuration type 1
# Настраиваются стандартные РCI-ресурсы
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
# Регионы 4000-407f и 5000-500f, занятые контроллером IDE
PCI quirk: region 4000-407f claimed by vt8235PM
PCI quirk: region 5000-500f claimed by vt8235SMB
Boot video device is 0000:01:00.0
# Таблица прерываний PCI
ACPI: PCI interrupt Routing Table [\_SB_.PCI0.PRT]
ACPI; PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 1 *3 4 5 6 7 10 11 12 14 15)
ACPI: PCI interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI interrupt Link [LNKD] (IRQs 1 3 4 *5 6 7 10 11 12 14 15)
# Запущена поддержка PnP-устройств
Linux Plug and Play Support V0.97 (c) Adam Веlау
pnp: PnP ACPI init
pnp: PnP ACPI: found 13 devices
# PnPBios отключена ACPI PNP
PnPBIOS: Disabled by ACPI PNP
# PCI использует ACPI для IRQ-маршрутизации (Маршрутизации прерываний)
PCI: Using ACPI for IRQ routing
# Если ваше PCI-устройство не работает, попробуйте передать ядру параметр pci=routeirq
PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
# Регистрируются сетевые протоколы
NET: Registered protocol family 8
NET: Registered protocol family 20
pnp: 00:02: ioport range 0x4000-0x407f could not be reserved
pnp: 00:02: ioport range 0x5000-0x500f has been reserved
PCI: Bridge: 0000:00:01.0
IO window: disabled.
MEM window: e8000000-e9ffffff
PREFETCH window: d0000000-dfffffff
PCI: Setting latency timer of device 0000: 00:01.0 to 64
NET: Registered protocol family 2
# Подготавливаются таблицы хеша для протоколов IP и TCP
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
…
# Поддерживаются квоты дискового пространства
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
# Параметры планировщика ввода-вывода (о нем мы поговорим позже)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
# планировщик cfg используется по умолчанию
io scheduler cfq registered (default)
# Поиск PnP-карт на шине ISA: карты расширения не найдены
isapnp: Scanning for PnP cards…
isapnp: No Plug&Play device found
# Драйвер часов реального времени (RTC)
Real Time Clock Driver v1.12ac
# Драйвер последовательного порта
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
# Мышка
mice: PS/2 mouse device common for all mice
# Параметры RAM-диска (диска в памяти)
RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize
input: Macintosh mouse button emulation as /class/input/input0
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
# Параметры клавиатуры и PS/2 контроллера
PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
…
NЕТ: Registered protocol family 1
Using IPI No-Shortcut mode
ACPI: (supports S0 S1 S4 S5)
Magic number: 11:19:571
hash matches device рtуb3
# Освобождается неиспользуемая ядром память
Freeing unused kernel memory: 328k freed
Time: tac clocksource has been installed.
input: AT translated Set 2 keyboard as /class/input/input1
# LSM-модель возможностей инициализирован
Capability LSM initialized
ACPI: Fan [FAN] (on)
ACPI: CPU0 (power states: C1[C1] C2[C2])
ACPI: Thermal zone [THRM] (40 C)
# Подготовка к загрузке USB
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
# Загружен драйвер USB
USB Universal Host Controller Interface driver v3.0
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ11
PCI: setting IRQ 11 as level-triggered
ACPI: PCI interrupt 0000:00:10.0 [A] -› Link
- [LNKA] -› GSI 11 (level, low) -› IRQ 11
uhci_hcd 0000:00:10.0: UHCI Host Controller
uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:10.0: irq 11, io bаsе 0x0000d000
usb usb1 configuration #1 chosen from 1 choice
# Найден USB-хаб с двумя портами
hub 1-0:1.0: USB hub found
hub 1-0:l-0: 2 ports detected
…
FDC a is a post-1991 82077
VP_IDE: IDE controller at PCI slot 0000:00:11.1
ACPI: PCI Interrupt 0000:00:11.1 [A] -› Link [LNKA] -› GSI 11 (level, low) -› IRQ 11
PCI: VIA VLink IRQ fixup for 0000:00:11.1, from 255 to 11
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
# Контроллер IDE VIA vt8235
VP_IDE: VIA vt8235 (rev 00) IDE UDMA133 controller on pci0000:00:11.1
# найдены IDE-устройства
ide0: BM-DMA at 0xdс00-0xdc07, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xdc08-0xdc0f, BIOS settings: hdc:DMA, hdd:DMA
# Проверяется первый IDE-контроллер (ide0)
Probing IDE interface ide0…
Time: acpi_pm clocksource has been installed.
# Первый жесткий диск (hda) - производства Western Digital,
# модель WD1600JB-00REA0 (Primary Master)
hda: WDC WD1600JB-00REA0, ATA DISK drive
ide0 at 0xlf0-0xlf7, 0x3f6 on irq 14
# Проверяется второй IDE-контроллер (ide1) Probing IDE interface ide1…
# Найден жесткий диск (hdc) Maxtor, модель 6E040L0 (подключен как Secondary Master)
hdc: Maxtor 6E040L0, ATA DISK drive
# К hdd (Secondary Slave) подключен CD/DVD-RОМ производства LG
hdd: HL-DT-ST DVDRAM GSА-4167В, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177, 0x376 on irq 15
# Подсистема SCSI инициализирована
SCSI subsystem initialized
libata version 2.20 loaded. ACPI: PCI Interrupt 0000:00:12.0[A] -› Link [LNKА] -› GSI 11 (level, low) -› IRQ 11
# Сетевой адаптер VIA Rhine II
еth0: VIA Rhine II at 0x1e800, 00:0d:87:88:bc:96 IRQ 11.
eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link 45e1.
ACPI: PCI interrupt LINK [LNKD] enabled at IRQ 5
РСI: setting IRQ 5 as level-triggered
ACPI: PCI interrupt 0000:00:10.3[d] -› Link[LNKD] -› GSI 5 (level, low) -› IRQ 5
# Параметры жёстких дисков
# Первый жесткий диск
# Максимальный размер запроса 512 Кбайт
hda: max request size: 512KiB
# К-во секторов - 312581808, размер 160041 MВ, буфер - 8192 Кбайт, поддержка UDMA 100
hda: 312581808 sectors (160041 MB) w/8192KiB Cache, CHS=19457/255/63, UDMA(100)
hda: cache flushes supported
hda: hda1 hda2 ‹ hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 ›
# Второй жесткий диск
# Максимальный размер запроса 128 Кбайт
hdc: max request size: 128KiB
# К-во секторов - 802932248, размер 41110 MB, буфер - 2048 Кбайт
hdc: 80293248 sectors (41110 МB) w/2048KiB Cache, CHS=65535/16/63
# DVD-ROM не поддерживает DMA
hdd: DMA disabled
ide1: reset: success
hdc1 hdc2 ‹ hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 ›
# Максимальная скорость чтения - 48X, кэш - 2048 Кбайт
hdd: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache
Uniform CD-ROM driver Revision: 3.20
…
ewsusp: Resume From Partition 3:7 PM: Checking swsusp image.
РМ: Resume from disk failed.
kjournald starting. Commit interval 5 seconds
# Файловая система ext3 работает в режиме ordered
EXT3-fS: mounted filesystem with ordered data mode.
# Сетевой интерфейс eth0 подключен к сети, скорость 100 Мбит/с
eth0: link up, 100Mbps, full-duplex, lрa 0x45E1
NET: Registered рrotоcоl family 17
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
Linux agpgart interface v0.102 (c) Dave Jones
irda_init()
NET: Registered protocol family 23
# Чипсет материнской платы VIA KT266/KY266x/KT333
agpgart: Detected VIA KT266/KY266x/KT333 chip set
# Размер видеопамяти - 128 Мбайт
agpgart: AGP aperture is 128М @ 0xe0000000
# Загрузка модуля видеокарты nVidia
nvidia: module license 'NVIDIA' taints kernel.
input: PC Speaker as /class/input/input2
ACPI: PCI Interrupt 0000:01:00.0[A] -› Link[LNKA] -› GSI 11 (level, low) -› IRQ 11
NVRM: lоаding NVIDIA Linux x86 Kernel Module 1.0-9631 Thu Nov 9 17:38:10 PST 2006
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [РСSРР,TRISTATE,CОМРАТ,ЕСР,DMA]
ACPI: PCI Interrupt 0000:00:11.5[C] -› Link[LNKC] -› GSI 10 (level, low) -› IRQ 10
PCI: Setting latency timer of device 0000:00:11.5 to 64
input: ImPS/2 Generic Wheel Mouse as /class/input/input3
fuse init (API Version 7.8)
# Параллельный порт
lp0: using parport0 (interrupt-driven).
# Добавляются разделы подкачки
Adding 530104k swap on /dev/hda7. Priority:-1 extents: 1 across:530104k
Adding 256968k swap on /dev/hdc7. Priority:-2 extents:1 across:256968k
# Файловая система ext3 найдена на hda6
EXT3 FS on hda6, internal journal
kjournald starting, Commit interval 5 seconds
# Файловая система ext3 найдена на hda5, режим журнала ordered
EXT3 FS on hda5, internal jоurnal
ЕХТЗ-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
# Файловая система ext3 найдена на hdc5, режим журнала ordered
EXT3 FS on hdc5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
# Файловая система ext3 найдена на hdc6, режим журнала ordered
EXT3 FS on hdc6: internal journal
EXT3-fs: mounted filesystem with ordered data mode.
# Есть NTFS-драйвер, поддержка NTFS в режиме только чтение
NTFS driver 2.1.28 [Flags: R/O MODULE]. NTFS volume version 3.1.
Взгляните на сообщения ядра Linux: no ним можно судить, как об аппаратных средствах компьютера, так и о самом процессе загрузки Linux. Например, из данного листинга следует, что аппаратная конфигурация компьютера, на котором запущена система Linux, следующая:
• процессор AMD Duron™, частота 1.6 ГГц;
• 64 Кбайт кэш-памяти первого уровня (L1 cache), 64 Кбайт кэша второго уровня (L2 cache);
• объем оперативной памяти - 768 Мбайт;
• материнская плата VIA, чипсет KТ266;
• два жестких диска: WD 160 Гбайт и Maxtor 40 Гбайт;
• CD/DVD-ROM LG;
• сетевой адаптер VIA Rhine 11 (интегрированный в материнскую плату);
• видеокарта nVidia, 128 Мбайт;
• два USB-порта.
О самой операционной системе можно сказать следующее:
• ядро - 2.6.21;
• SELinux выключена;
• планировщик ввода-вывода работает в режиме cfg;
• два раздела подкачки - один 530Мбайт, второй - 256 Мбайт;
• основная файловая система - ext3;
• основной режим журнала ext3 - ordered;
• есть поддержка NTFS.
Все сказанное выше должно быть понятно обычному квалифицированному пользователю, не знакомому с Linux вообще. Всё, кроме параметров планировщика, - о режимах работы журнала exl3 мы уже говорили.
7.2.2.3. Планировщик ввода-вывода
В ядре 2.6 появилась возможность самостоятельно выбирать планировщик ввода-вывода. Всего используется четыре плани-ровщика.
• noop - самый простой планировщик ввода-вывода, практически ничего не умеет, создавался в расчете на использование Flash-диска вместо жесткого диска, поэтому нам такой планировщик не подходит.
• fq - этот планировщик равномерно планирует операции ввода-вывода (получается "местная" очередь). Используется по умолчанию.
• anticipatory (сокращенно as) - этот планировщик будет пытаться угадать следующую инструкцию программы. В этом случай производительность той или иной программы зависит от ее алгоритма, т.е. оттого, угадает ли планировщик следующий "ход" программы.
• deadline - планируются "крайние сроки" выполнения той или иной операции. Больше подходит для сервера, поэтому на рабочих станциям и домашних компьютерах его лучше не использовать.
Итак, сделаем выводы. Планировщики noop и deadline нам не годятся. Остается использовать или планировщик по умолчанию - cfg, или "планировщик-предсказатель". Попробуйте использовать anticipatory: если производительность системы понизится, всегда можно вернуться к cfg.
Выбор планировщика осуществляется путем передачи ядру параметра elevator:
elevatоr=aa (для anticipatory)
или
elevator=cfq
Поскольку cfq используется по умолчанию, то для выбора этого планировщика вообще не нужно указывать параметр elevator.
7.2.3. Уровни запуска. Файл /etc/inittab
После того как все будет готово к запуску системы инициализации (будет "подмонтирована" корневая файловая система, подключены разделы подкачки и т.д.), ядро запустит программу инициализации системы, сохраняемую в файле /sbin/init (как уже было отмечено, это система инициализации по умолчанию).
Первым делом программа init открывает файл /etc/inittab (это таблица инициализации) и читает уровень запуска по умолчанию. Он задается так:
id:5:initdefault:
5 - это номер уровня запуска по умолчанию; всего существует шесть уровней запуска:
• 0 - останов системы (система переходит на этот уровень когда получена команда завершения работа);
• 1 - Однопользовательский режим без поддержки сети (для перехода в этот режим нужно передать ядру параметр single);
• 2 - многопользовательский режим без поддержки сети;
• 3 - многопользовательский режим с поддержкой сети бeз загрузки графического интерфейса;
• 4 - данный уровень запуска не используется;
• 5 - многопользовательский режим с поддержкой сети с загрузкой графического интерфейса,
• 6 - перезагрузка системы (система переходит на этот уровень, когда получена команда перезагрузки).
Вот основные команды завершения работы:
• halt - останов системы;
• poweroff - останов системы с выключением питания;
• reboot - перезагрузка системы.
Перейти на нужный вам уровень запуска (уже после загрузки системы) можно с помощью команды init:
# init
‹номер_уровня› Например:
# init 3
7.2.4. Сервисы (службы)
После того как программа init получила номер уровня запуска, она запускает из каталога /etc/rc.d/rcN.d (N - это номер уровня запуска) ссылки вида SномерИмя (или KномерИмя - в зависимости от уровня запуска). Сейчас разберемся, что это за ссылки. Перейдите в каталог /etc/rc.d/rcN.d - например, с помощью команды
cd /etc/rc.d/rcs.d
В данном каталоге вы найдете файлы ссылок с именами вида SномерИмя и KномерИмя. Каждая ссылка ссылается на один из сценариев в каталоге /etc/rc.d/init.d.
Данные сценарии используются для управления сетевыми службами. Предположим, что на вашем компьютере установлен Web-сервер, тогда в каталоге /etc/rc.d/init.d будет сценарий. httpd. Для запуска Web-сеpвepa используется команда /etc/rc.d/init.d/httpd start, а для останова - /etc/rc.d/init.d/httpd stop.
Теперь вернемся к нашим ссылкам SномерИмя и KномерИмя, Ссылка вида S* используется для запуска сетевой службы. Например, ссылка для запуска Web-сервера может выглядеть так: S25httpd, а ссылка для останова Web-сервера - так: K15httpd.
Если команда init обнаружит, что ей нужно обработать ссылку вида S*, то будет выполнена команда S25httpd start. Поскольку ссылка S25httpd ссылается на /etc/red/init.d/httpd, то на самом деле будет выполнена команда:
/etc/rc.d/init.d/httpd start
Другими словами, с помощью ссылки S25httpd программа init запустит наш Web-сервер.
Ссылка вида K* используется для останова сетевой службы. Если команда init должна обработать такую ссылку, то будет выполнена команда KномерИмя stop. Другими словами, сетевая служба будет остановлена.
Номер в имени ссылки означает порядок запуска/останова службы, Например, служба S10service будет запущена раньше, чем S25httpd.
Если вы заглянете в каталоги rc2.d, rс3.d и rc5.d, то обнаружите, что d этих каталогам есть только S-ссылки. В каталогах rc0.d и rc6.d находятся преимущественно К-ссылки, поскольку с их помощью выполняется разгрузка системы, и нужно остановить работавшие сетевые службы.
Уровень 1 (single) особый: на нем нужно остановить все запушенные сетевые службы, поэтому в каталоге rc1.d тоже нет S-ссылок, будут только одни K-ссылки. K-ссылки нужны для того, чтобы остановить запушенные сетевые службы, если вы перешли на первый уровень с более высокого уровня запуска.
Для управления службами в Fedora используется конфигуратор system-config-services, который мы уже рассмотрели в главе 1.
7.3. Загрузчик GRUB
7.3.1. Кратко о GRUB
Как уже было отмечено, GRUB (Grand Unified Bootloader) - это один из возможных загрузчиков Linux. Раньше загрузчиком де-факто был LILO (Linux Loader), но потом появился GRUB, и LILO сдал свои позиции. Конечно, LILO уступил свое место под солнцем не сразу, а за несколько лет. Но даже и сейчас встречаются дистрибутивы, которые используют LILO. Иногда встречаются дистрибутивы, которые используют собственный загрузчики вместо GRUB, например, ASP Linux использует собственный загрузчик - ASP Loader, нота при установке операционной системы у пользователя есть возможность выбрать другой загрузчик - GRUB или LILO.
Чем же GRUB лучше, чем LILO? Во-первых, GRUB не нужно каждый раз переустанавливать после изменения конфигурационного файла. Если вы не знакомы с LILO, то знайте: после редактирования конфигурационного файла lilo.conf нужно было в обязательном порядке переустановить загрузчик. GRUB не нужно переустанавливать после изменения его конфигурационного файла. Во-вторых, GRUB более гибкий. По сути, GRUB - это командная оболочка, позволяющая без загрузки операционной системы выполнять простейшие операции над файлами. Например, с помощью команды cat можно просмотреть любой файл на жестком диске:
grub› cat (жёсткий диск)путь/файл
Например,
grub› cat (hd0,4)/etc/inittab
Это очень полезно, если система не загружается, а у вас есть подозрения, что дело в одном из конфигурационных файлов. В-третьих, GRUB поддерживает много разных файловых систем - FAT32, ext3, Reiserfc, XFS и др., что и позволяет ему проделывать трюки, описанные выше.
7.3.2. Конфигурационный файл GRUB
Конфигурационный файл GRUB называется /boot/grub/grub.conf. В ранних версиях этот файл назывался menu.lst, а теперь menu.lst - это ссылка на файл grub.conf, хотя в некоторых дистрибутивах, например, в Ubuntu, данный файл до сих пор называется menu.lst. Впрочем, к Fedora это отношении не имеет.
Пример файла конфигурации grub.conf представлен в листинге7.2.
Листинг 7.3. Пример файла конфигурации grub.conf
# тайм-аут: ждать 5 секунд, а потом загрузить операционную систему по умолчанию
timeout 5
# номер ОС по умолчанию - это Fedora
default 0
# графическая тема
color black/yellow yellow/black
title Fedora (on /dev/hda5)
root (hd0,4)
kernel /boot/vmlinuz-2.6.22-1.2798.fc8 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.22-1.2798.fc8.img
savedefault
title Windows NT/2000/XP (loader)
root (hd0,0)
makeactive chainloader +1
Параметр timeout задает тайм-аут в секундах перед загрузкой операционной системы по умолчанию. Параметр default задает номер операционной системы, загружаемой по умолчанию. Нумерация операционных систем начинается с 0.
Описание каждой операционной системы начинается с параметра title. Параметры, заданные до первою параметра title, считаются глобальными и распространяются на все операционные системы. Параметры, заданные после title, относятся к текущей операционной системе (пока не будет встречен следующий параметр title).
Параметр root задает идентификатор устройства (раздела жесткого диска), в котором установлена система. Идентификаторы в GRUB немного отличаются от общепринятых в Linux. Мы привыкли, что разделы жесткого диска именуются так: /dev/hdXn, где X - буква, а n - цифра (или /dev/sdiXn в случае с SCSI/SATA-диском). В GRUB формат другой:
(hdНомер,Номер)
Первый номер - это номер жесткого диска, второй - номер раздела. Предположим, что у нас есть устройство /dev/hda5. В GRUВ его ID будет выглядеть так: (hd0, 4).
Вот последовательность действий по преобразованию имен /dev/hdXn в имена GRUB:
• удалить /dev/ (останется hdXn);
• букву X заменить на соответствующий ей номер, при условии, что нумерация начинается с 0, т.е. а = 0, b = 1, с = 2, d = 3 и т.д.;
• номер n уменьшить на 1.
Параметр kernel указывает требуемое для загрузки операционной системы ядро и параметры этого ядра. В данном случае ядро называется /boot/vmlinuz-2.6.22-1.2798.fc8, и ему будут переданы cледующие параметры ro root-LABEL-/ rhgb quiet. Понятно, что параметр kernel не нужно указывать для операционных систем, отличных от Linux.
Параметр initrd задает RAM-диск. Он тоже нужен только для Linux.
Параметр savedefault нужен далеко не всегда. Операционная система по умолчанию задается параметром default. Обычно указывается номер операционной системы, но если вместо номера ОС указать значение saved, то по умолчанию будет загружена ОС, отмеченная параметром savedefault.
Для загрузки Linuх достаточно всего трех параметров: root, kernel и initrd. Теперь рассмотрим загрузку Windows. Как обычно, с помощью root нужно указать раздел жесткого диска, в который установлена Windows. Параметры kernel и initrd в этом случае не нужны, поскольку нет ни Linux-ядра, ни RAM-диска. Зато нужны следующие параметры:
makeactive
chainloader +1
Первый параметр делает раздел, из которого загружается Windows, активным. Для Windows 2000, XP и Vista это уже не актуально, зато актуально для старых версий Windows (98, ME), которые не могли загрузиться, если раздел жесткого диска, в который они установлены, не являлся активным.
Параметр chainloader нужен для всех ОС, поддерживающих цепочечную загрузку. В данном случае такой ОС является Windows, поэтому нужно не забыть указать chainloader +1, иначе Windows вы не запустите.
7.3.3. Некоторые полезные глобальные параметры
В табл. 7.1 приведены некоторые полезные глобальные параметры программы GRUB.
Таблица 7.1. Полезные глобальные параметры GRUB
| Параметр |
Описание |
| hiddenmenu |
Скрывает загрузочное меню. Для его открытия нужно нажать ‹Esc›. Посла тайм-аута будет, как обычно, загружена ОС по умолчанию. Параметр удобно использовать, если список загружаемых ОС большой, но обычно используется ОС по умолчанию, поэтому нет особой необходимости при каждой загрузке выбирать другую ОС |
| password пароль |
Позволяет установить пароль. Если параметр password является глобальным (указан до первого параметра title), то при редактировании параметров ядра всех ОС будет запрошен пароль, также пароль будет запрошен при попытке загрузить ОС, отмеченные параметром lock. Если же параметр password относится только к одной ОС (указан после ее параметра title), тогда паролем будет защищена только выбранная ОС. Подробно о защите паролем мы поговорим чуть позже |
| groot=ID |
Позволяет указать загрузочное устройство по умолчанию, например groot=(hdo,4) |
| memtest86=true |
Если задан параметр memtest86=true, GRUB cоздаст загрузочную опцию для вызова программы memtest86 (ее заранее нужно установить). Данная программа используется для проверка оперативной памяти. Если компьютер часто самопроизвольно перезагружается или зависает - это повод проверить его оперативную память |
| splashimage= картинка |
Позволяет установить фоновую картинку для меню загрузчика |
7.3.4. Обои для GRUB
Если вы не котите, чтобы ваш компьютер был похож на все остальные, можно установить картинку, которая будет использоваться в качестве фона меню загрузчика GRUB.
Вот требования к картинке:
• количество цветов - 16;
• разрешение (размеры) - 640 х 480;
• формат - ХРМ.
Конвертировать картинку в нужный формат можно с помощью программы GIMP. Если вам нравится работать в командной строке, то можно воспользоваться командой:
convert
исходная_картннка -colors 16 -resize 640x480 image.xpm
Программа convert входит в состав пакета ImageMagic.
Затем файл image.xpm нужно cкопировать в каталог /boot/ grub и сжать с помощью архиватора gz:
# cp image.xpm /boot/grub
# gzip image.xpm
Затем нужно открыть файл grub.conf и добавить параметр:
splashimage= (
ID)/boot/grub/image.xpm.gz,
где
ID - это идентификатор вашего раздела, например hd0,5.
7.3.5. Установка пароли GRUB
Теперь поговорим об установке пароля GRUB. Пароль можно установить так (в файле /boot/grub/grub.conf):
…
password my_pass
…
title Linux
В этом случае мы установили пароль my_pass. Если кто-то попытается отредактировать параметры ядра (чтобы, например, взломать ваш пароль root, см, приложение А), то GRUB запросит у него пароль. Но любой желающий сможет загрузить любую операционную систему с параметрами по умолчанию.
Если вы хотите, чтобы GRUB запрашивал пароль при загрузке операционной системы, нужно "закрыть" ее параметром lock, Сейчас мы "закроем" ОС Windows: title Windows NT/2000/XP (loader) root (hd0,0) makeactive
chainloader +1 lock
Вроде бы все теперь хорошо. Но не совсем. Ваш пароль виден невооруженным взглядом. Это означает, что если кто-то подключит ваш жесткий диск к другому компьютеру и просмотрит ваш файл grub.conf, то он узнает ваш пароль. Ну, или загрузится с LiveCD, "подмонтирует" корневую файловую систему и откроет файл grub.conf - способ значения не имеет, важен результат.
Чтобы такого не произошло, нужно зашифровать ваш пароль. Для этого введите команду grub:
# grub
В ответ система выведет приглашение:
grub›
Введите команду md5crypt. Затем нужно ввести ваш пароль. В ответ вы получите код, например, $l$gLhU0/$aW78kHK1QfV3P 2b2znUoe/. Запишите код на бумажке и введите команду quit для выхода из оболочки GRUB. После этого откройте файл grub.conf и измените параметр password следующим образом: password -md5 ваш_код
Например:
password -md5 $l$gLhU0/$aW78kHK1QfV3P2b2znUoe/
Вот теперь ваш пароль в GRUB защищен.
7.4. Создание и использование LiveCD
7.4.1. Что такое LiveCD
В 2006 году появился первый LiveCD на базе Fedora Core (тогда еще шестой версии). LiveCD - это загрузочный диск, содержащий основные компоненты системы, графический интерфейс пользователя (обычно GNОМЕ) и различные вспомогательные программы, включенные в состав дистрибутива по усмотрению разработчиков данного диска LiveCD.
LiveCD - это не просто загрузочный диск с пакетами. Ведь дистрибутивный (установочный) диск тоже является загрузочным. A LiveCD - это нечто большее. С помощью LiveCD можно ознакомиться с дистрибутивом, не устанавливая его на жесткий диск. Многие пользователи, перед тем, как скачать с Интернета полную версию дистрибутива на DVD (а она "весит" примерно 3 Гбайт, - например, восьмая версия Fedora занимает 3,2 Гбайт), загружают LiveCD. который занимает всего 700 Мбайт. Если дистрибутив понравился, то загружается полная DVD-версия,
Но ознакомление с дистрибутивом - это не единственное применение LiveCD. Бы можете использовать диск LiveCD для восстановления системы. Например, вы переустановили Windows, и она затерла загрузочный сектор, и Linux больше не загружается. Переустанавливать Linux ой как не хочется. С помощью же LiveCD вы легко можете восстановить загрузчик системы.
Еще LiveCD удобно использовать, чтобы Linux постоянно была "под рукой". Ведь на LiveCD обычно записаны практически все программы, с которыми вы привыкли работать - OpenOffice, GIMP, конфигураторы сети, браузер Firefox. Вы можете загрузиться с LiveCD и работать с вашими документами. Правда, сохранить документы на LiveCD не получится, но сейчас это не проблема - ведь можно использовать Flash-диск. Конечно, каждый раз придется заново настраивать доступ к Интернету, но, учитывая, что в современных дистрибутивах на это уходит пару щелчков мыши (если не считать ввода имени пользователя и пароля), то данная процедура не займет много времени.
Теперь вы знаете, что такое LiveCD. Как его использовать, вы уже поняли - просто нужно вставить в привод CD/DVD и загрузиться с него. В этой главе мы поговорим о создании собственного LiveCD. Да, очень скоро вы научитесь создавать собственные LiveCD!
7.4.2. Создание собственного LiveCD
Ничего сложного в создании собственного LiveCD нет. Ведь во времена 6-й версии Fedora Core Дэвид Цойтен (David Zeuthen) разработал инструментарий livecd, позволяющий создавать LiveCD даже самим неподготовленным пользователям. Создание LiveCD заключается в вводе одной-единственной команды, вам нужно лишь понять, как она формируется. Но для начала нужно освоить немного теории.
7.4.2.1. Репозиторий и его создание
Мы уже знаем, что такое репозиторий - это просто набор пакетов, У Fedora два основных репозитория:
• core - основной репозиторий, поддерживается разработчиками Fedora;
• extras - поддерживается участниками проекта и сообществом разработчиков.
Кроме этих репозиториев существуют и другие, например, Livna, FreshRPM, Tigro, которые поддерживаются третьими лицами.
Я не знаю, какая у вас версия Fedora - у вас может быть восьмая, седьмая или даже шестая, поэтому, чтобы приведенные ко-^faидь^ работали абсолютно у всех пользователей, будем рассматривать только самый универсальный вариант. Для его реализации нам нужно создать каталог /rpms и скопировать в него все пакеты с дистрибутивного DVD. После этого с помощью утилиты createrepo (она устанавливается отдельно) создать локальный репозиторий пакетов, который и будет использоваться инструментарием для создания LiveCD. Вот действия, которые вам нужно выполнить (точкой с запятой отделены мои комментарии):
su ; становимся root
# mkdir /rpms ; создаем каталог
# ср /путь/*.rpm /rpms ; путь к пакетам, зависит от версии Fedora
# yum install createrepo ; устанавливаем createrepo (если еще не установлена)
# createrepo /rpms ; создание репозитория
Выполнение последней команды займет некоторое время, поэтому придется немного подождать
7.4.2.2. Установка инструментария livecd и дополнительных пакетов
Для установки инструментария для создания LiveCD нужно установить всего лишь один пакет - livecd-tools. Но кроме этого пакета желательно скачать и установить следующие пакеты:
• fedora-livecd - минимальный (базовый) LiveCD на базе Fedora;
• fedora-livecd-gnome - LiveCD, включающий GNOME;
• fedora-livecd-desktop - содержит все то, что и fedora-livecd-gnome, плюс дополнительные программы.
На базе данных заготовок вы с легкостью создадите собственный LiveCD. Теперь загрузим и установим все необходимые пакеты. Начнем с livecd-tools:
# wget -c http://people.redhat.com/davidz/livecd/i386/livecd-tools-001-1.i386.rpm
# rpm -ivh livecd-tools-001-1.i386.rpm
Первая команда загрузит пакет livecd-tools с Интернета, поэтому на момент ее ввода соединение с Интернетом должно быть уже установлено. Вторая команда установит загруженный пакет.
Теперь установим заготовки LiveCD:
# сd ~
# mkdir livecds
# cd livecds
# wget -c http://people.redhat.com/davids/livecd/i386/fedora-livecd-6-1.i386.rpm
# wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-gnome-6-1.i386.rpm
# wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-desktop-6-1.i386.rpm
# createrepo livecds
"6" в имени пакета - это не версия Fedora, а версия пакета, поэтому) не нужно пытаться установить пакет fedora-livecd-7 или fedora-livecd-8 - их просто не существует!
Не волнуйтесь: данные пакеты - это не три LiveCD, а только три списка пакетов, которые должны быть включены в LiveCD, поэтому пакеты не займут много места, и вы не превысите свой лимит по трафику.
Не забудьте ввести последнюю команду - она создаст репозиторий, необходимый для построения LiveCD.
7.4.2.3. Использование livecd-creator
В состав livecd-tools входит утилита livecd-creator. Данная утилита не имеет графического интерфейса, поэтому она используется в консоли (терминале). Параметры livecd-creator приведены в табл. 7.2.
Таблица 7.2. Параметры утилиты livecd-creatoг
| Параметр |
Описание |
| --repo=‹имя›,‹url› |
Задает путь к репозиторию |
| --package=‹имя› |
Добавляет в состав LiveCD указанный пакет |
| --exclude-package=‹имя› |
Исключает пакет из состава LiveCD |
| --bаse-on=‹ISO-файл› |
Позволяет в качестве основы LiveCD использовать уже готовый LiveCD, т.е. ISO-образ LiveCD |
| --fslabel=‹метка› |
Метка файловой системы (по умолчанию: livecd-YYYYMMDD-HHMI) |
7.4.2.4. Создание своего первого LiveCD
Теперь у нас все готово, чтобы создать свой первый LiveCD. Для его создания нужно ввести команду (от имени пользователя root):
# livecd-creator --repo=cоrе, file:///rpms --расkage=bash --package=kernel --package=grub
Данная команда создаст LiveCD, в который будут включены пакеты kernel (ядро), bash (командный интерпретатор), grub (загрузчик Linux) и все пакеты, от которых зависят указанные три пакета.
В результате будет создан ISO-файл. Вы можете записать его на CD (желательно на CD-RW - так экономнее будет в итоге) и загрузиться с него. В результате у вас будет система с минимальным набором утилит и командным интерпретатором. Да, с помощью такого LiveCD много вы не сделаете, но все же это ваш первый LiveCD, с чем я вас и поздравляю!
7.4.2.5. Создание LiveCD с GNOME
Теперь усложним нашу задачу: создадим LiveCD, содержащий систему XOrg и графическую среду GNOME. Проще всего это сделать на базе уже готового пакета fedora-livecd-gnome.
Ничего особенного вам делать не нужно, просто введите следующую команду:
# livecd-creator --repo=core,file:///rpms \
--package=fedora-livecd-gnome \
--repo=e6,http://download.fedora.redhat.com/pub/fеdora/linux/extrаs/6/i386
Обратный слэш после каждого параметра нужно вводить, только если вы собираетесь писать следующий параметр со следующей строки. Если же вы вводите всю команду в одну строку, то слэш указывать не нужно.
Последнюю строчку нужно указывать только, если у вас Fedora Core 6. Пакеты из репозитория extras, начиная с седьмой версии Fedora, включены в состав репозитория core, поэтому уже указаны параметром:
--repo=core,filе:///rрms
Выполнение вышеуказанной команды займет довольно много времени, так что можете отправляться пить чай или кофе. Можете особо не беспокоиться об ошибках: если livecd-creator не сможет найти какой-то пакет, он его пропустит и все же создаст LiveCD, конечно, при условии, что пропущенный пакет не является жизненно важным (вроде пакета kernel).
7.4.2.6. Добавление в LiveCD собственных пакетов
В предыдущем параграфе мы создали LiveCD с GNOME. Сейчас попробуем добавить в него другие пакеты, например Open Office (популярный офисный пакет) и Evolution (почтовый клиент и органайзер).
Добавление пакетов в LiveCD осуществляется с помощью параметра --package:
--package=имя
Команда, создающая LiveCD с GNOME, OpenOffice и Evolution, выглядит так:
# livecd-creator -repo=core,file:///rpms \
--repo=lcd,file:///root/livecds \
--расkаgе= fedora-livecd-gnome \
--package=openoffice \
--packsage=evolution \
--repo=e6,http://ownload.fedora.re4hat.com/pub/fedora/linux/extras/6/i386
Как обычно, последний параметр нужно указывать только в случае с Fedora Core 6.
7.4.2.7. Подключение других репозиториев
Во время создания LiveCD вы можете подключить другие репозитории и включить в состав LiveCD дополнительные пакеты из этих репозиториев. Пример подключения репозитория Livna:
# livecd-creator -repo=core,file:///rpms \ -repo=lcd,file:///root/livecds \
--repo= livna8,http://livna-dl.reloumirrors.net/fedora/8/i386/ -package=fedora-livecd-gnome \
--package=пакет1
…
--package=пакетN
Обратите внимание на URL репозитория:
http://livna-dl.reloumirrors.net/fedora/8/i386/; для Fedora 8
http://livna-dl.reloumirrors.net/fedora/7/i386/; для Fedora 7
http://livna-dl.reloumirrors.net/fedora/6/i386/; для Fedora Core 6
7.4.2.8. Изменение существующих LiveCD
Предположим, что вы создали свой LiveCD и он сохранен на жестком диске в виде ISO-файла. Создание LiveCD довольно длительный по времени процесс, и очень неприятно, если потребуется повторить его из-за случайно забытого и не включенного в LiveCD какого-то пакета. Что же делать в подобном случае? Да ничего особенного делать и не нужно, просто следует в команде создания указать параметр base-on со ссылкой на уже созданный ISO-файл;
# livecd-creator -repo=core,file:///rpms \
--repo=репозиторий1
…
--repo=репозиторийN
--base-on=MyLiveCD.iso
Как видите, ничего сложного нет: сначала приводим список репозиториев, затем с помощью параметра base-on указываем наш LiveCD, а потом с помощью параметра package - нужный пакет.
7.4.2.9. Запись созданных LiveCD на болванку
Проще всего записать созданный ISO-файл с помощью графической программы для прожига дисков, например с помощью Nero для Linux. Если нет никакого желания устанавливать платную программу, да к тому же хотелось бы сделать все, что надо, не выходя из консоли, то для записи CD подойдет вот такая команда:
# cdrecord dev=0,0,0 -dao speed=N ISO-файл
Например:
# cdrecord dev=0,0,0 -dao speed=16 MyLiveCD.iso
Данная команда запишет ISO-файл MyLiveCD. iso на скорости 16x на диск, установленный в устройстве 0,0,0. Определить идентификатор устройства можно с помощью команды cdrecord -scanbus, хотя если у вас всего лишь один привод CD/DVD, то это всегда будет 0,0,0.
Если вы записываете ISO-файл на перезаписываемый диск CD-RW, то перед записью его нужно очистить. Для этого используется команда:
# cdrecord -v blank=fast dev=0,0,0
7.5. Брандмауэр в Fedora. Общий доступ к Интернету
7.5.1. Что такое брандмауэр
Основная задача брандмауэра (другие названия - межсетевой экран, бастион, firewall) - фильтрация пакетов. Брандмауэр просматривает заголовки всех пакетов, которые передаются по сетевым интерфейсам вашего компьютера, и выполняет действия над этими пакетами к соответствии c установленными для него правилами.
Брандмауэр может использоваться как для защиты едкого компьютера, например, домашнего компьютера, подключаемого к Интернету, так и для защиты всей сети, В случае с сетью брандмауэр устанавливается на шлюзе - компьютере, через который остальным компьютерам в сети предоставляется доступ к Интернету,
Настройка брандмауэра для зашиты одного компьютера очень проста. По умолчанию брандмауэр запрещает доступ к вашему компьютеру всем пользователям Интернета. Для настройки брандмауэра вам нужно лишь указать, каким службам можно будет обращаться к вашему компьютеру. Например, если вы хотите получить удаленный доступ к консоли своего компьютера, необходимо разрешить службу SSH (Secure Shell), После этого вы сможете подключиться к консоли своего компьютера с другого компьютера (из любой точки земного шара) с помощью следующей команды: ssh имя_вашего_компьютера
Понятно, что в момент удаленного подключения наш компьютер должен быть включен, загружен и подключен к Интернету.
Настройка брандмауэра на шлюзе чуть сложнее. Предположим, у нас есть небольшая сеть (пусть это будет домашняя сеть) из нескольких компьютеров. Лишь один компьютер в этой сети непосредственно подключен к Интернету (далее мы будем называть его шлюзом), но мы хотим, чтобы все компьютеры в сети тоже могли работать в Интернете.
На компьютере-шлюзе должно быть как минимум два сетевых интерфейса. Один интерфейс (внешний) будет использоваться для выхода в Интернет, а второй (внутренний) - для связи с компьютерами локальной сети.
Сетевые интерфейсы могут быть разными, например, сетевая плата (для связи с сетью) и модем (для связи с Интернетом). Если у вас ADSL-модем, тогда вам придется купить еще одну сетевую плату. К одной сетевой плате (интерфейс eth0) вы подключите ADSL-модем, а вторая (интерфейс eth1) будет использоваться для подключения к локальной сети.
В локальной сети используются так называемые локальные адреса вроде 10.*.*.* или 192. 168.*.*. Такие адреса не пропустит ни один шлюз Интернета, поэтому наш шлюз должен выполнять преобразование адресов. Сейчас поясню, что это такое. Предположим, что компьютер внутренней сети с IP-адресом 192.168.1.2 пытается получить доступ к узлу www.mail.ru. Он посылает запрос (который получит наш шлюз) вида: "Отправитель: 192.1б8.1.2, получатель: 194.67.57.226 (это IР-адрес сайта www.mail.ru)".
Шлюз получает этот запрос и перезаписывает его так: "Отправитель: 193.254.219.230, получатель: 194.67.57.226". Как вы уже догадались, 193.254.219.230 - это (IР-адрес самого шлюза в Интернете. Данный адрес является реальным (не локальным), поэтому запрос от такого адреса пройдет по глобальной сети нормально.
Шлюз, получив ответ от узла 194.67.57.236 вида "Отправитель: 134.67.57.226, получатель 193.254.219.230", перезаписывает его так: "Отправитель: 194.67.57.226, получатель 192.168.1.2". Сайт 194.67.57.226 ничего не заподозрит - он будет считать, что "общается" с узлом 193.254.219.330, а узел 192.168.1.2 будет полагать, что получил ответ непосредственно от www.mail.ru.
Как видите, все достаточно просто. Данная процедура называется NAT (Network Address Translation) - преобразование сетевых адресов. Теперь, когда теория изучена, можно приступать к практике.
7.5.2. Конфигуратор system-config-firewall
Для настройки брандмауэра используется конфигуратор system-config-firewall. При запуске программа сообщит, что является всего лишь оболочкой и позволяет произвести только базовую настройку брандмауэра (рис. 7.3). Но в нашем простом случае этого будет вполне достаточно.
Проще всего выполнять первую настройку брандмауэра с помощью мастера, поэтому щелкните на кнопке Wizard панели инструментов. Первый вопрос мастера - подключена ли ваша система к сети (к любой сети, в том числе и к Интернету). Понятно, что подключена, поэтому выбираем в списке значение System with network access (рис 7.4).
Рис. 7.3. Предупреждение об ограниченных возможностях программы-конфигуратора Рис. 7.4. Запрос: система подключена к Сети?
Затем нужно указать, подключена система только к одной сети (значение Up to one) или к нескольким сетям (значение More than one). Если у вас только один компьютер и вы не хотите настраивать общий доступ к Интернету, тогда следует выбрать в списке значение Up to one. В противном случае (когда у вас несколько компьютеров и вы хотите настроить общий доступ) нужно выбрать значение More than one (рис. 7.5).
Рис. 7.5.
Запрос: система подключена к одной или к нескольким сетям? Далее нужно честно оценить ваши знания по настройке сети; новички выбирают значение Beginner, а более опытные пользователи - значение Expert. Понятно, что в режиме Expert (рис. 7.6) конфигуратор предоставляет больше возможностей по настройке брандмауэра, чем в режиме Beginner. (А точнее, в режиме Beginner недоступны разделы Доверенные интерфейсы, Маскарадинг и Custom Rules). Далее нужно пару раз щелкнуть на кнопке Next, и конфигурация брандмауэра будет создана.
Теперь можно перейти к основному окну брандмауэра (рис. 7.7), в котором присутствует пять разделов.
• Trusted services - доверяемые службы: службы, которым разрешен удаленный доступ к вашему компьютеру. По умолчанию отмечены IPsec, mDNS, Сетевая печать и SSH. Рекомендую отключить службу SSH - вряд ли вы будете подключаться к своему компьютеру по протоколу SSH.
Рис. 7.6. Выбор режима настройки интерфейса Рис. 7.7.
Основное окно конфигуратора system-config-firewall
Other ports - в предыдущем разделе перечислены только общеизвестные службы, например, Web-сервер, FTP-сервер и др. (см. врезку ниже). Если нужной вам службы в списке нет, ее можно добавить в разделе Other ports. Например, вы установили в системе игровой сервер (для того же Counter Strike) и хотите разрешить к нему доступ извне (из Интернета), чтобы другие пользователи могли подключиться к вашей игре.
Custom rules - позволяет добавить пользовательские правила. Пользовательские правила - это правила, сохраненные в специальном файле с помощью программы iptables-save. Кстати, программа iptables - это и есть брандмауэр Linux, a system-config-firewall - это всего лишь оболочка для нее. Раздел Custom rules предназначен для тех случаев, если брандмауэр у вас был настроен ранее (в предыдущих версиях Fedora), вы сохранили его настройки, переустановили систему, а теперь хотите их импортировать. Хотя, если честно, пользователям, умеющим настраивать iptables, никакой конфигуратор для импорта настроек не нужен вовсе! Разделы Доверенные интерфейсы и Маскарадинг используются для настройки NAT, т. е. общего доступа к Интернету. Но, вообще говоря, для настройки общего доступа к Интернету намного проще использовать утилиту Firestarter (пакет называется firestarter).
О настройке Web-сервера и FTP-сервера вы можете прочитать в других моих книгах, посвященных настройке сетевого сервера под управлением Linux. В данной книге настройка этих сетевых служб не рассматривается.
7.5.3. Программа Firestarter: общий доступ к Интернету
С немощью Firestarter вы можете настроить общий доступ к Интернету всего за пару щелчков мыши. Данная программа намного удобнее стандартного конфигуратора system-config-firewall.
Сначала установим саму утилиту firestarter.
# yum install firestarter
После установки запустите firestarter: firestarter. При первом запуске откроется окно мастера (рис. 7.8), помогающего настроить брандмауэр.
Рис. 7.8. Стартовое окно мастера Firestarter Первым делом мастер попросит указать устройство, с помощью которого вы подключаетесь к Интернету (рис. 7.9).
Рис. 7.9. Выбор сетевого интерфейса для подключения к Интернету В очередном окне нужно установить флажок опции Enable Internet connection sharing (рис. 7.10), а в следующем - Start firewall now (рис. 7.11). Этим вы разрешите общий доступ к Интернету и запустите брандмауэр прямо сейчас.
Рис. 7.10. Разрешение общего доступа к Интернету
Рис. 7.11. Немедленный запуск брандмауэра На этом настройка шлюза завершена. Теперь нужно настроить остальные компьютеры вашей сети. На каждом компьютере нужно запустить конфигуратор system-config-network, выделить интерфейс сетевой платы (eth0), щелкнуть на кнопке Свойства и в качестве IP-адреса шлюза установить IP-адрес компьютера, на котором запушен Firestarter (рис. 7.12),
Затем нужно перейти на вкладку DNS конфигуратора system-config-network и установить адреса DNS-серверов провайдера (рис. 7.13).
На этом настройку брандмауэра можно считать завершенной.
Рис. 7.12. Установка адреса шлюза на остальных компьютерах сети Рис. 7.13. Прописывание DNS-адресов
7.6. Планировщики заданий
7.6.1. Выбор планировщика
В состав Fedora входит три планировщика: crond, anacron и atd. Планировщик crond используется для создания расписания, т.е. для периодического выполнения указанных пользователем команд в определенное время. Например, вы можете задать команду, которая будет выполняться каждый час, каждый день или раз в месяц.
Планировщик atd немного проще. Он умеет выполнять программы в строго определенное время, т.е. вы можете задать время и дату, например, 7 часов 11 октября, и команду, которая будет выполнена и это время.
Понятно, что планировщик crond более универсальный, поэтому в большинстве случаев вы будете использовать именно его. A планировщик atd можно вообще отключить.
Планировщик anacron является ближайшим родственником crond. Он похож на crond, но в то же время заслуживает отдельного разговора.
7.6.2. Планировщик crond
7.6.2.1. Файл конфигурации /etc/crontab
Основной конфигурационный файл данного планировщика называется /etс/crontab. Этот файл является общесистемным расписанием и его может редактировать только пользователь root. Формат файла crontab следующий:
М Ч Д ММ ДН Команда
где;
• М - минута (0-59);
• Ч - час (0-23);
• Д - день (1-31);
• ММ - месяц (1-12);
• ДН - день недели (0=Вс, 1=Пн и т.д.).
Рассмотрим типичный пример данного файла (листинг 7.3).
Листинг 7.3. Типичный пример файла crontab
SHELL= /bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Здесь SHELL, PATH, MAILTO и HOME - это переменные окружения, задающие, соответственно, оболочку, путь поиска программ, адрес администратора и домашний каталог - они нужны только в общесистемном файле. Нас больше интересует вторая часть этого файла:
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Команда run-parts означает, что должны быть выполнены все выполняемые файлы (обычно это сценарии) из указанного каталога. Не сложно догадаться, что из каталога /etc/cron.hourly команды будут выполняться каждый час, из каталога /etc/cron.daily - каждый день (в 4 часа утра), из каталога /etc/cron.weekly - раз в неделю по воскресеньям, а из каталога /eta/сron.monthly - раз в месяц, 1-го числа.
7.6.2.2. Правильное расписание для домашнего компьютера
Взгляните на формат файла crontab, а затем на имеющееся расписание. Программа crond довольно "древняя". Первоначально она появилась в UNIX, а UNIX преимущественно устанавливалась на серверах, которые работают круглосуточно и никогда не выключаются. Потом программа crond ''перекочевала" в Linux. Система Linux тоже сначала использовалась на машинах, которые практически никогда не выключаются - на компьютерах профессиональных пользователей-фанатов и на серверах. Со временем система Linux плавно переехала на домашние компьютеры, но в 4 часа утра компьютеры домашних пользователей… выключены. Следовательно, заданные команды не будут выполнены никогда!
Поэтому нам, как домашнему пользователю, нужно изменить расписание хотя бы так, как показано ниже (думаю, к 9 часам можно включить компьютер практически в любой день, включая воскресенье),
02 9 * * * root run-parts /etc/cron.daily
22 9 * * 0 root run-parts /etс/cron.weekly
42 9 1 * * root run-parts /etc/cron.monthly
Если вы работаете за домашним компьютером преимущественно вечером, то время выполнения следует "переместить" на вечер:
02 20 * * * root run-parts /etc/cron.daily
22 20 * * 0 root run-parts /etc/cron.weekly
42 20 1 * * root run-parts /etc/cron.monthly
Кроме того, может потребоваться изменить день недели для команд, которые выполняются еженедельно (в приведенных примерах задан день недели 0 = Bс, а в воскресенье компьютер может быть выключен):
22 20 * * 1 root run-parts /etc/cron.weekly
В результате команды из каталога /etc/cron.weekly будут запускаться каждый понедельник в 20 часов 22 минуты.
7.6.2.3. Сценарии
Как уже было отмечено выше, в каталоги /etc/cron* помещаются сценарии, которые нужно выполнить в указанное время. Рассмотрим шаблон типичного сценария (листинг 7.4).
Листинг 7.4. Шаблон сценария
#!/bin/bash
команды
Первая строка обязательна. После нее можно писать любые команды, которые нужно выполнить, например freshclam (используется для обновления антивирусных баз).
После того как сценарий создан, нужно сделать его выполняемым (без этого система не сможет его запустить);
# chmod + имя_файла_сценария
7.6.2.4 Пользовательские файлы crontab
Каждый пользователь может создать свой файл crontab. Для этого используется команда crontab. Пользовательские файлы crontab помещаются в каталог /var/spool, чтобы исключить их непосредственное редактирование в текстовом редакторе.
Пользовательские файлы crontab никак не влияют на общесистемный файл /etc/crontab, который редактируется только пользователем root.
7.6.3. Планировщик anacron: отдельный разговор
Как уже было отмечено, anacron - это ближайший родственник crond. Он создан для того, чтобы устранить некоторые недостатки crond. Предположим, вы хотите, чтобы антивирусная база обновлялась в понедельник, в 18.00. Но если в один прекрасный день вы еще не придете с работы в указанное время, компьютер останется выключенным и, следовательно, обновления не произойдет. В результате вы останетесь со старой базой (если, конечно, не запустите обновление вручную).
Планировщик Anacron контролирует выключения и перезагрузки компьютера, поэтому ваши задания не останутся невыполненными. Тем не менее, и у anacrontab есть недостатки,
• Пользователи не могут создавать свои расписания, системный файл /etc/anacrontab может редактировать только пользователь root.
• Планировщик crond более гибкий в настройке: вы можете указать часы и минуты, когда должна быть выполнена команда. В случае планировщика anacron можно указать только период, когда будет выполнена указанная команда, и допустимую задержку.
Формат файла /etc/anacrontab следующий: Период Задержка ID-задачи Команда
Пример файла anacrontab представлен в листинге 7.5.
Листинг 7.5. Пример файла /etc/anacrontab
# /etc/anacrontab: файл настройки для anacron
# См. anacron(8) и anacrontab(5) для более подробной инфoрмации
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# These replace cron's entries
1 5 cron.daily run-parts /etc/cron.daily
7 10 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly
7.6.4. Планировщик atd
Теперь разберемся, как использовать планировщик atd - это совсем просто. Для создания нового задания используется команда:
at ‹время› [дата]
Если дата не указана, по подразумевается, что команды нужно выполнить сегодня. Время указывается в формате АМ/РМ. Например, если вам нужно выполнить команду в 9 утра, то нужно указать at 9 am. Если же нужно выполнить команду в 21.00, тогда нужно ввести команду at 9pm.
После того как, задав время, вы нажмете ‹Enter›, планировщик atd будет ждать, пока вы введете все необходимые команды, которые нужно выполнить в указанное время. Для завершения ввода перечня команд нужно нажать комбинацию клавиш ‹Clrl+D›.
Чтобы просмотреть очередь заданий, введите команду atq, a для удалении заданий используется команда atrm номер. Номер заданий можно узнать с помощью команды atq.
7.7. Система SELinux: краткое руководство
7.7.1. Система контроля доступа
Как мы уже знаем, и Linux есть обычные пользователи и суперпользователь. Обычные пользователи практически не имеют никаких прав. Они могут создавать и изменять файлы только из своего домашнего каталога, а к остальным файлам файловой системы они обычно имеют доступ лишь в режиме "только чтения" (да и то не ко всем файлам).
Суперпользователь - это локальный царь и бог: ему подвластна вся система. Иначе говоря, система безоговорочно выполнит любую команду пользователя root, даже если root прикажет системе уничтожить саму себя. Да, система беззащитна перед пользователем root.
Представим, что пароль root вашей системы каким-то образом узнал очень нехороший человек. Каким именно образом злоумышленник завладел паролем, нас не интересует, для нас важны последствия: злоумышленник получил полный контроль над системой! Все остальное зависит только от него: он может удалить или изменить любые файлы, скопировать любую информацию и т.д.
Но обычные пользователи, несмотря на практически полное отсутствие прав доступа, тоже не совсем безопасны. Да, у обычных пользователей нет доступа к большинству файлов, но не к большинству программ. Обычный пользователь может, например, запустить компилятор gcc, если он установлен. Если пользователь имеет навыки программирования, то он запросто может написать программу, которая узурпирует большую часть процессорного времени или других системных ресурсов (это одна из самых распространенных атак на отказ - DoS-атак), Система не ограничивает использование программ обычными пользователями (конфигураторы являются системными утилитами, поэтому они не в счет).
Для обеспечения необходимой безопасности нам нужна некоторая дополнительная система контроля доступа, которая не даст пользователю root разнести все в пух и прах (умышленно или случайно) и не запретит обычным пользователям захватывать слишком большую часть системных ресурсов.
Система контроля доступа позволяет устанавливать права доступа к файлам не только для отдельных пользователей, но и для отдельных процессов. Например, FTP-серверу ProFTPD не нужен доступ ко всем файлам из каталога /etc. Ему нужен доступ только к каталогу, содержащему его конфигурационные файлы - /etc/proftpd. Контроль доступа к файлам, если установлена система контроля доступа, осуществляется в два этапа.
1. Проверка прав доступа на уровне файловой системы. Если файловая система запрещает доступ к файлу, то дальнейшая проверка не проводится.
2. Проверка прав доступа на уровне SELinux. Если файловая система разрешила доступ к файлу, проводится дополнительная проверка на уровне SELinux.
SELinux (Security-Enhanced Linux - Linux с улучшенной безопасностью) - система принудительного контроля доступа. SELinux считается одной из самых совершенных (понятно, при правильной настройке) систем контроля доступа, обеспечивающих максимальную безопасность. Сейчас она входит в состав ядра Linux и поставляется в составе многих дистрибутивов, Но по-прежнему есть и такие дистрибутивы, в которых SELinux не используется.
Системе SELinux можно доверять только потому, что она была разработана агентством национальной безопасности США, а затем уже была передана миру OpenSource. Такая организация, как NSA, не могла сделать небезопасную систему.
Нужно отметить, что SELinux по-настоящему нужна на сервере или компьютере, содержащем важную информацию. На домашнем компьютере она не нужна, поэтому ее можно смело отключить. В данной главе мы не будем подробно рассматривать все возможности SELinux, поскольку книга рассчитана на рядового пользователя, а не системного администратора, Обычному же пользователю будет достаточно информации, приведенной в этом разделе.
7.7.2. Базовые понятия SELinux: сущность, роль и домен
Чтобы настроить SELinux, вам нужно ознакомиться с ее базовыми понятиями: сущность, роль и домен.
Сущность (identity) является частью контекста безопасности, который задает домены, в которые можно войти. Говоря более простым, языком, сущность определяет, что можно сделать. Например, сущность den определяет, что может сделать пользователь den.
Но сущность не является идентификатором или именем пользователя! Не нужно отождествлять имя пользователя с сущностью: есть имя пользователя den, а есть сущность den. Чтобы нам было понятнее откройте терминал и введите команду id. Вы получите такой вывод:
uid=500(den) gid=500(den) группы=500 (den) context=user_r:system_r:unconfined_t
Теперь введите команду su, а затем снова команду id. Вы получите следующий вывод (рис. 7.14):
uid=0(root) gid=0(root) группы=0(root),1(bin)
,2(daemon),3(sys),4(adm),6(disk),10(wheel) context=user_r:system_r:unconfined_t
Обратите внимание: UID (идентификатор пользователя) изменился, а сущность осталась прежней - user_r. Ради эксперимента, введите следующую команду:
/sbin/init 3
Рис. 7.14. Команда id om имени обычного пользователя Вы перейдете на третий уровень запуска. Войдите в систему как пользователь root. Затем введите команду id, и вы получите следующий вывод (рис. 7.15):
uid=0(root) gid=0(root) группы=0(root),1(bin),2(daemon),3(sys)
,4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Рис. 7.15. Команда id om имени пользователя root Обратите внимание: изменилась сущность и контекст безопасности. Это доказывает, что сущность никак не привязана к идентификатору пользователя.
Пора разобраться, что же такое роль и домен.
Домен (domain) определяет привилегии процесса; он представляет собой список возможностей, т.е. действий, которые разрешены процессу. Описывать данные действия самостоятельно вам не придется, об этом уже позаботились разработчики Fedora, описав более 200 процессов, которые могут выполняться в операционной системе. Все остальные процессы, которые не описаны в политике безопасности, попадают в домен unconfined_t. Данные процессы не защищаются SELinux.
Иногда домен называют типом. Тип (type) - это то же самое, что и домен, но домен относится к процессам, а тип - к файлам, каталогам, сетевым сокетам.
Роль (role) задает список доменов, которые могут быть использованы. Вот пример описания роли в конфигурационном файле (об этом позже): role user_r types user_passwd_t
Данная запись означает, что роли user_r разрешен доступ к домену user_passwd_t, т.е. пользователям с этой ролью разрешено использовать программу passwd для смены своего пароля.
Говоря обобщенно, сущность определяет, какие домены и какие роли, могут быть использованы.
Контекст безопасности состоит из сущности, роли и домена. Контекст безопасности выводится в формате:
context=сущность;роль;домен
Команда id выводит как раз контекст безопасности.
Теперь, когда мы знакомы с основными понятиями SELinux, пора рассмотреть политику безопасности.
Политика безопасности - это правила, контролирующие списки ролей, к которым пользователь имеет доступ, доступ доменов к типам, доступ ролей к доменам.
7.7.3. Включение/выключение SELinux в Fedora
Включить или выключить SELinux (кстати, в Fedora SELinux по умолчанию включена) можно с помощью конфигуратора system-config-securitylevel. После запуска конфигуратора нужно в его окне перейти во вкладку Настройка SELinux (рис. 7.16) и задать режим работы SELinux.
Принудительный режим - нормальный режим работы, при котором SELinux будет запрещать доступ к объектам, если это необходимо.
Режим предупреждений - данный режим нужно использовать для отладки работы SELinux: доступ к объектам разрешается, но если SELinux считает, что при выполнении операции нарушена политика безопасности, то будет выведено предупреждение о том, что операция запрещена (предупреждение заносится в файл /var/ log/messages).
Выключен - SELinux не используется.
Рис. 7.16. Окно конфигуратора system-config-securitylevel Учтите, что при каждом включении/выключении SELinux ваша файловая система будет перемаркирована (рис.7.17). В этой операции нет ничего страшного (при перемаркировке будут изменены контексты безопасности), но она может занять довольно много времени. Перемаркировка производится при первой перезагрузке после включения/выключения SELinux.
Рис. 7.17. Предупреждение о выполнении перемаркировки файловой системы
7.7.4. Каталог /etc/selinих
В каталоге /etc/selinux хранятся конфигурационные файлы и политики SELinux. Главный файл конфигурации - /etc/selinux/config (листинг 7.6)
Листинг 7.6. Главный файл конфигурации SELinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELinux=enforcing
# SELINUXTYPE= can take one of these two values:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELIHUXTYPE=targeted
Директива SELINUX может принимать три значения:
• enforcing - принудительный режим;
• permissive - режим предупреждений;
• disabled - SELinux выключена.
Теперь вы знаете, какой файл редактирует конфигуратор sys-tem-config-securitylevel.
Директива SELINUXTYPE позволяет выбрать тип защиты:
• targeted - будут защищены объекты, описанные в политике безопасности;
• strict - полная защита.
По умолчанию используется политика targeted. Файлы политики strict не установлены по умолчанию. Для их установки (если нужно) используется команда:
# yum install selinux-policy-strict
7.7.5. Управление SELinux
Для управления системой контроля доступом используется конфигуратор system-config-selinux (рис. 7.18). С помощью этого конфигуратора можно полностью настроить SELinux, но чаще всего вы будете посещать раздел Boolean, в котором задаются возможности той или иной сетевой службы - например, FTP-сервера, Web-сеpвepa, Х-сервера и т.д.
Рис. 7.18. Конфигуратор system-config-selinux Также с помощью этого конфигуратора можно определить привилегии пользователей (User Privs) и администратора (Admin) (рис. 7.19).
Рис. 7.19. Привилегии пользователей Каталог /selinux - это псевдофайловая система selinuxfs, которую можно использовать как для управления SELinux, так и для получения информации о работе SELinux. Но, как правило, данный каталог используется самой системой SELinux, а для изменения параметров системы намного удобнее использовать конфигуратор system-config-selinux.
7.7.6. Режим предупреждений
Как уже было отмечено, в режиме предупреждений в файл /var/log/messages выводятся предупреждения о запрещении доступа, но сам доступ к объекту не запрещается. Вывести все SELinux сделанные предупреждения можно с помощью команды:
# cat /var/log/messages | audit
Рассмотрим пример типичного сообщения о запрещении доступа к объекту (это не реально сделанное предупреждение, а просто пример предупреждения):
Oct 21 16:l0:l5 dhsilabs kernel: audit(2149208252_610:29):avc: denied {read} for pid=1554 comm="bash" name="/etc/shadow" dev=hda5 ino=13671 sсontext =root:system_r:hotplug_t tcontext-root:object_r:user_home_t tclass=file
Оно означает, что 21 октября в 16:10 на машине dhsilabs процесс bash (comm) с PID (идентификатор процесса) 1554 (pid) попытался открыть для чтения (read) файл /etc/shadow (name) с номером инода 13671 (ino), yстройство, на котором находился файл, называется hda5, контекст безопасности задается как scontext. Операция чтения была запрещена (denied).
7.8. Псевдофайловая система /proc
7.8.1. Кратко о /proc
Псевдофайловая система /proc является специальным механизмом, который позволяет получать информацию о системе от самого ядра, а также передавать информацию ядру, модулям ядра и его процессам.
Файловая система /proc находится в оперативной памяти компьютера, однако вы можете обращаться к файлам и подкаталогам каталога /proc так же, как и к остальным файлам на жестком диске. Единственное, что напоминает о ее "виртуальности" (файловая система /proc является виртуальной - Virtual File System) - это размер файлов. Посмотрите на размер любого файла из каталога /proc: он равен 0. Но если вы его откроете, то увидите, что файл содержит-таки информацию. Это объясняется тем, чти содержимое файла формируется "на лету" - сразу после получения запроса на открытие файла,
В каталоге /proc есть только два типа файлов. Первый тип - это информационные файлы, позволяющие получить информацию о системе и о процессах. Данные файлы доступны только для чтения.
Второй тип файлов используется для передачи информации ядру или его модулям. Такие файлы доступны как для чтения (чтобы узнать текущие значения параметров), так и для записи (чтобы изменить это значение).
Как и в случае с обычными файлами, просмотреть информационный файл можно с помощью команды cat:
cat /proc/путь/файл [| less]
Изменить параметр системы можно путем записи нового значения параметра в соответствующий proc-файл:
echo "значение" › /proc/путь/файл
7.8.2. Некоторые информационные файлы
Рассмотрим некоторые информационные файлы, доступные в псевдофайловой системе /proc:
• /proс/version - содержит версию ядра;
• /proc/cmdline - позволяет просмотреть список параметров, которые были переданы ядру при загрузке;
• /proс/apuinfo - Содержит информацию о процессоре;
• /proc/meminfo - предоставляет информацию об использовании оперативной памяти;
• /proc/devices - содержит список устройств;
• /proc/filesystems - содержит список файловых систем, которые поддерживаются вашей системой;
• /proc/mounts - содержит список "подмонтированных" в данный момент файловых систем;
• /proc/modules - содержит список загруженных модулей;
• /proc/swaps - список используемых разделов и файлов подкачки.
Например, вы можете получить информацию о процессоре с помощью следующей команды:
cat /proc/cpuinfо
Система выдаст в ответ следующую информацию:
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 15
model name: Genuine Intel(R) CPU 2160 @ 1.80GHz
stepping: 2
cpu MHz: 1798.238
cache size: 1024 KB
physical id: 0
Siblings: 2
core id: 0
cpu cores: 2
fpu: yes
fpu_exception: yes
cpuid level: 10
wp: yes
flags: fpu vme de рsе tsc msr рае
mce cx8 apic sep mtrr pge mca cmov pat pse36 сlflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips: 3599.18
сlflush size: 64
cache_alignment: 64
address sizes: 36 bits physical, 46 bits virtual
power management:
processor: 1
vendor_id: GenuineIntel
cpu family: 6
model: 15
model name: Genuine Intel(R) CPU 2160 @ 1.80GHz
stepping: 2
cpu МHz: 1798.238
cache size: 1024 KB
physical id: 0
siblings: 2
core id: 1
cpu cores: 2
fpu: yes
fpu_exception: yes
cpuid level: 10
wp: yes
flags: fpu vme de pse tsc msr pae mce сx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx1б xtpr lahf_lm
bogomips: 3595.87
clflush size: 64
cache_alignment: 64
address sizes: 36 bits physical, 48 bits virtual
power management:
Данная команда позволяет узнать:
• кто производитель процессора (vendor_id);
• модель процессора (model name);
• частоту процессора (cpu MHz);
• размер кэша первого уровня (cache size);
• другие параметры процессора.
В данном случае в системе установлено два процессора, что видно из вывода команды.
7.8.3. Параметры ядра
В каталоге /proc/sys/kernel находятся файлы, позволяющие изменять некоторые важные параметры ядра. Перечислим некоторые (самые важные) файлы из этого каталога.
• ctrl-alt-del - задает реакцию системы на нажатие комбинации клавиш ‹Ctrl+Alt+Del›. Может содержать значение 0 ("мягкая перезагрузка", при которой управление передастся программе init) или 1 ("жесткая" перезагрузка, практически равносильная нажатию кнопки Reset на корпусе компьютера, поскольку никаких действий по деинициализации системы не производится).
• domainname - содержит сетевое доменное имя.
• hostname - содержит имя хоста.
• msgmax - максимальный размер сообщения (в байтах), которое может быть передано от одного процесса к другому при межпроцессном взаимодействии. Значение по умолчанию 8192. Если увеличить это значение, то увеличится размер ОЗУ, занимаемый операционной системой.
• panic - время в секундах, которое ядро будет ждать, прежде чем перезагрузить систему после вывода сообщения "kernel panic". По умолчанию - 0, т.е. перезагрузка не производится.
• printk - определяет, куда будут направлены сообщения в зависимости от их важности, В файле содержатся четыре значения, например, 6 4 1 7 (по умолчанию). Первое значение задает, сообщения с каким уровнем должны быть выведены на консоль (Console Log Level). Если уровень сообщения 6 и ниже (чем меньше число, тем больше приоритет), то это важные сообщения, и они будут выведены на консоль, второе значение задает приоритет для сообщений, для которых не указано значение приоритета, т.е. задает уровень приоритета по умолчанию. Третье значение задает номер самого высокого приоритета (это 1). Четвертое значение - это значение по умолчанию для первого. Более подробно обо всем этом вы можете прочитать в man syslog(2).
• shmall - максимальный размер (в байтах) разделяемой памяти, значение по умолчанию - 2097152.
• shmax - максимальный размер сегмента памяти (в байтах), допускаемый ядром. По умолчанию - 33554432.
• shmmni - максимальное число сегментов разделяемой памяти. По умолчанию - 4096.
• threads-max - максимальное число используемых ядром потоков. По умолчанию - 2048.
7.8.4. Параметры файловых систем
В каталоге /proc/sys/fs/ можно найти файлы, определяющие работу файловой системы:
• file-max - максимальное число одновременно открытых файлов, по умолчанию 4096.
• inode-max - максимальное число одновременно открытых инодов, по умолчанию 4096.
• super-max - максимальное количество заголовков суперблоков. У каждой "подмонтированной" файловой системы есть суперблок, следовательно, максимальное количество суперблоков равно максимальному количеству одновременно смонтированных файловых систем. Значениепо умолчанию - 256.
• super-nr - текущее количество суперблоков (файл используется только для чтения, писать в него нельзя).
7.8.5. Сетевые параметры
Каталог /proc/sys/net содержит файлы, определяющие работу сети.
• /proc/sуs/net/core/message_burst - можно использовать для предотвращения Dos-атаки, когда система заваливается сообщениями. Определяет время в десятых долях секунды, которое необходимо для записи нового соообщения, остальные сообщения, полученные за это время, будут проигнорированы. Значение по умолчанию - 50 (5 секунд).
• /proc/sys/net/core/message_cost - значимость каждого сообщения. Чем выше значение, тем больше сообщений будет проигнорировано. По умолчанию - 5.
• /proc/sys/net/core/netdev_max_backlog - максимальное число пакетов в очереди на обработку. Позволяет установить максимум, если сетевой интерфейс получает пакеты быстрее, чем ядро может их обработать. По умолчанию - 300.
• /proc/sys/net/core/optmem_max - максимальный размер буфера (в байтах) для одного сокета.
• /proc/sys/net/core/rmem_max - размер буфера для буфера получения информации (в байтах).
• /proc/sys/net/core/wmem_max - размер буфера для буфера отправки информации (в байтах).
• /proc/sys/net/ipv4 - относительно этого файла все очень подробно описано в документе /usr/src/linux/
Documentation/networking/ip-sysctl.txt.
7.8.6. Параметры виртуальной памяти
Каталог /proc/sys/vm содержит файлы, позволяющие изменить параметры виртуальной памяти.
• buffermem - позволяет управлять количеством общей системной памяти, которая будет использоваться как буферная память. В данном файле указываются три значения (через пробел): минимальный, средний и максимальный размер памяти (в %), которая может быть использована для буфера. По умолчанию: 2 10 60.
• freepages - содержит три значения, разделенные пробелами (512 768 1024 - по умолчанию). Если количество свободных страниц памяти достигнет первого значения, доступ к любому дополнительному количеству памяти будет иметь только ядро (а не другие процессы). Если количество свободных страниц будет меньше второго значения (768), ядро будет более активно освобождать память путем свопинга. То же самое и для третьего значения, только в этом случае ядро будет еще активнее.
• kswapd - управляет свопингом. Как и в предыдущем случае, в этом файле присутствуют три значения, разделенные пробелами (512 32 8). Первое значение - это максимальное количество страниц, которые ядро будет пытаться освободить за один раз. Второе - это минимальное количество попыток освобождения страницы во вpeмя свопинга. Третье - количество страниц, которое можно записать в своп. Чем больше это значение, тем больше данных будет записано на диск и меньше времени будет потрачено на поиск на диске. Но тут важно не перестараться, так как слишком большое значение окажет обратный эффект, поскольку увеличится очередь запросов.
7.8.7. Сохранение изменений
Понятно, что любые внесенные в указанные выше "файлы" изменения будут действовать только до перезагрузки компьютера, Сохранить изменения можно с помощью программы sysctl, точнее с помощью ее конфигурационного файла /etc/sysctl.conf.
Однако формат этого файла несколько отличается от тех команд, которые мы вводили. Предположим, что вы ввели команду:
# echo "50" › /prac/sys/vm/swappiness:
Вам понравилось, как система работает с таким значением коэффициента подкачки, и появилось желание сохранить изменения. Откройте файл /etc/sysctl.conf и добавьте в него строку:
vm.swappiness = 50
Как видите, /proc/sys/ в начале имени файла отбрасывается, а все оставшиеся слеши заменяются точками.
Однако далеко не все дистрибутивы используют программу sysctl. Если в вашем дистрибутиве нет файла /еtс/sysctl.conf, то придется пойти другим путем. А именно: добавить команды, изменяющие /proc-файлы, в загрузочные сценарии системы, чтобы они выполнялись каждый раз при запуске системы.
Прочитав эту книгу, вам наверняка захочется узнать больше о выбранном вами дистрибутиве - Fedora8. Поэтому здесь мы поговорим об источниках информации по Linux.
Linux - это отлично документированная система. В составе любого дистрибутива есть довольно большая справочная система - man (от manual - руководство), которая подскажет параметры любой Linux-команды и формат любого конфигурационного файла. Пользоваться этой системой очень просто. Введите:
man имя_команды
или
man имя_конфигурационного_файла
Например;
man chmod
man /etc/sftab
Современные пользователи Linux почему-то забывают пользоваться этой справочной системой и в результате на Linux-форумах появляется масса вопросов - "почему у меня не работает это" или "как сделать это"? Такие вопросы возникают не только из-за незнания, но и из-за нежелания разобраться самостоятельно, стремления сделать "все и сразу" одним щелчком, по принципу "пришел, увидел, победил", без какой-либо подготовки. Linux - очень продуманная, доступная и логичная операционная система. Нужно только до конца понять ее логику. А это требует некоторого времени и соответствующих усилий. Зато потом все станет на свои места, будет ясным и прозрачным. Далеко не всегда возникшую в Linux проблему можно устранить с "разбега" - перепрыгнуть ее без анализа и поиска решения вряд ли получится. А вот решить проблему вдумчиво и неспешно - подучится наверняка.
Кроме команды man обязательно загляните в каталог /usr/share/doc - в нем вы найдете много документации по различным программам, установленным в вашей системе.
Конечно же, следует порекомендовать Интернет-ресурсы - они обновляются быстрее, чем встроенная справочная система.
• http://www.fedorafaq.org/ - довольно толковый FAQ (список вопросов и ответов) по Fedora 8, правда, он на английским языке. Обязательно прочитайте его, узнаете много чего полезного, заодно и английский выучите (если вы его еще не знаете).
• http://wwu.dkws.org.ua - сайт автора, содержащий много статей (почти все) и форум. Зарегистрируйтесь на форуме и не стесняйтесь задавать вопросы. Обещаю посильную помощь!
• http://www.linuxrsp.ru - проект Linux Russian Security Project, посвященный не только вопросам безопасности Linux, но и вообще различным вопросам, которые время от времени возникают у пользователей Linux. На этом сайте вы найдете разные статьи на все случаи жизни начинающего "Линуксоида".
• http://www.xakep.ru - довольно много вопросов в журнале "Хакер" посвящается Linux, несмотря на название и былую ориентацию журнала "для компьютерных хулиганов". Наверное, чтобы искоренить сложившееся мнение, что хакер - это плохо.
Проблема 1. Забыт пароль root
Восстановить забытый пароль довольно просто. Для этого при загрузке системы выберите загрузочный образ (рис. A.1), а затем нажмите клавишу ‹а›. Появится возможность отредактировать параметры ядра. Укажите параметр ядра single (рис. А.2),
Рис. А.1. Выбор загрузочного образа
Рис. А.2. Передача параметра ядра После этого система будет загружена в однопользовательском режиме (рис. А.З). Для изменения пароля пользователя root просто введите команду:
passwd root
Нужно отметить, что если вы защитили загрузчик GRUB от редактирования параметров ядра, то после нажатия клавиши ‹а› загрузчик попросит вас ввести пароль дли редактирования этих параметров. Если вы его не знаете, тогда у вас ничего не получится. Видимо, придется переустанавливать Linux.
Рис. А.3. Однопользовательский режим Хотя есть способ обойтись и без переустановки. Для этого нужно загрузиться с LiveCD Fedora (его можно приобрести в любом Интернет-магазине), затем открыть терминал и ввести команды от имени пользователя root:
chroot
устройство passwd root
В первой команде вы должны указать устройство, например, /dev/hda5, на которое установлена Fedora.
Проблема 2. Как войти в систему как пользователь root
По умолчанию нельзя войти в систему как пользователь root в графическом режиме. Чтобы получить полномочия пользователя root, придётся в окне терминала использовать команду su. Чтобы войти как пользователь root в графическом режиме, выполните следующие действия.
1. Нажмите комбинацию клавиш ‹Ctrl+Alt+F1› - вы попадете в консоль.
2. Войдите в систему как пользователь root (вход в систему как пользователь root в консоли допускается).
3. Введите следующую команду:
setfiles /etc/security/selinux/file_contexts /root
Нужно отметить, что работа в графическом режиме с полномочиями пользователя root не рекомендуется - из соображений безопасности.
Проблема 3. Ошибка kernel panic: VFS: Unable to mount root fs
Данная ошибка означает, что ядро не может подмонтировать корневую файловую систему.
• Если вы увидели данное сообщение при загрузке с дистрибутивного CD/DVD, скорее всего, поверхность носителя повреждена. Попробуйте извлечь диск и очистить его поверхность (возможно, кто-то взялся за диск жирными или грязными пальцами), а затем снова попробуйте загрузиться с диска. Если же поверхность целая и не грязная, значит, это дефект записи диска. Попробуйте использовать другой диск.
• Если данное сообщение вы увидели при загрузке уже установленной системы, то это означает, что корневая файловая система повреждена, например, разрушилась таблица разделов. А мажет, вы изменили конфигурацию жесткого лиска (например, жесткий диск, на который была установлена Linux, ранее был подключен к IDE-разъемам как Secondary Master, а теперь вы его подключили как Secondary Slave). Попробуйте передать ядру параметр root=устройство, где устройство - это раздел жесткого диска, содержащий корневую файловую систему.
Проблема 4. Ошибка kernel panic - not syncing
Данная ошибка может появиться на некоторых 64-битовых процессорах в случае проблем с контроллером АРIС. При загрузке Linux передайте параметр noapic - проблема должна исчезнуть. Если проблема исчезла, добавьте параметр noapic в список постоянных параметров загрузки (файл /boot/grub/menu.lst, см. раздел 7.3 в этой главе).
Проблема 5. Артефакты на LCD-мониторе
Если ваш LCD-монитор подключен к цифровому разъему (DVI) видеокарты, то на экране могут появиться артефакты (дефекты изображения). Чтобы избавиться от этой проблему попробуйте при загрузке системы передать загрузчику параметр ядра nofb.
Если данный параметр "помог", его нужно добавить в список постоянных параметров (внести в файл grub.сonf, см. раздел 7.3 этой главы). Если же дефекты изображения все равно есть, попробуйте подключить монитор к аналоговому разъему (VGA, D-Sub) видеокарты - должно помочь.
Проблема 6. После установки Fedora 8 не удается загрузить ранее установленные дистрибутивы Linux
Объясню суть проблемы. На моем компьютере до установки Fedora 8 были установлены две операционные системы: OpenSuSE 10.3 и Windows XP. После установки Fedora 8 я смог загрузить только Windows XP и Fedora 8- системы OpenSuSE 10.3 в меню GRUB не было. Это проблема установщика Fedora 3, который отказался "замечать" дистрибутив Linux другой компании.
Расскажу, как я решил данную проблему. Для большей определенности нужно дополнительно уточнить, что система OpenSuSE была установлена в раздел /dev/sda5, a Fedora - в раздел /dev/sda6.
Такие (системные) действия я привык выполнять в режиме одного пользователя (single mode), поэтому при загрузке Fedora я передал ЯДРУ параметр single. После завершения загрузки нужно ввести следующие команды:
# mkdir /sda
# mount /dev/sda5 /sda
Первая команда создаст каталог /sda, а вторая - "подмонтирует" к нему раздел /dev/sda5, в котором была установлена система OpenSuSE. Затем нужно открыть файл /sda/boot/grub.menu.1st и скопировать описание загрузочной метки OpenSuSE. У меня оно выглядело так:
title openSUSE 10.3
root (hd0,4)
kernel /boot/vmlinuz-2.6.22-5-31-default root=/dev/disk/by-id/scsi-SATA_WDC_WD1600JB-00_WD-WCANM7959048-part5 vga=0x31a resume=/dev/sda7 splash=silent showopts
initrd /boot/initrd-2.e.22.5-31-default
Вам нужно скопировать именно вашу загрузочную метку, а не мою. Свою я привел здесь лишь для того, чтобы вы поняли, что именно вам нужно скопировать. Скопированную метку нужно вставить в файл /boot/grub/menu.1st (это конфигурационный файл загрузчика Fedora).
После этого вам нужно скопировать файлы vmlinuz-2.6.22.5-31-default и initrd-2.б.22.5-31-default, принадлежащие OpenSuSE, в каталог /boot:
# ср /sda/boot/vmlinuz* /boot
# ср /sda/boot/initrd* /boot
Все, теперь можно отмонтировать раздел /dev/sda5 и удалить каталог /sda:
# umount /sda
# rmdir /sda
# reboot
После перезагрузки у вас появится загрузочная запись OpenSuSE 10.3, которую можно использовать для загрузки системы OpenSuSE.
В Fedora можно использовать следующие конфигураторы.
pirut (в версии Fedora 8) - то же самое, что и system-config-packages.
system-config-authentication - параметры аутентификации (проверки подлинности пользователя).
system-config-cmd - то же, что и system-config-network, но предназначен для использования в консоли. system-config-date - позволяет изменять дату и время.
system-config-display - изменяет параметры видеокарты и монитора (позволяет выбрать драйвер видеокарты, выбрать монитор, установить разрешение и глубину цвета, а также настроить совместное использование двух мониторов).
system-сonfig-firewall (Fedora 8) - утилита настройки брандмауэра.
system-config-keyboard - позволяет выбрать основную раскладку клавиатуры.
system-config-language - позволяет выбрать язык системы.
system-config-nctwork - используется для создания и управления сетевыми соединениями, а также изменения различных сетевых параметров (DNS, файла /etc/hosts и др.).
system-config-packages (в версии Fedora 7 и младше) - оболочка для yum, используется для управления пакетами. system-config-printer - используется для управления принтерами.
system-config-securitylevel - настройка уровня безопасности (параметры брандмауэра и SELinux).
system-config-securitylevel-tui - то же, что и system-config-securitylevel, но предназначен для использования в консоли.
system-config-selinux - расширенный конфигуратор SELinux.
system-confis-services - позволяет включать и отключать сервисы (службы).
system-config-soundcard - конфигуратор звуковой платы. system-config-time - то же, что и system-config-date. system-config-users - используется для управления пользователями.
system-install-packages (Fedora 8) - утилита для графической установки программ.
В Linux есть понятие владельца файла (каталога) и прав доступа к нему. С данными понятиями мы познакомились в главе I, но подробно не рассматривали их. Здесь мы поговорим об этом подробнее.
В Linux существует три типа прав доступа: чтение (r - от
read)
, запись (w - от
write), выполнение (х от
execute). Право выполнения для файла означает, что данному пользователю разрешается запускать этот файл на выполнение, а для каталога право выполнения означает разрешение просматривать оглавление данного каталога. Обычно право выполнения файла устанавливается для файлов программ.
Можно установить разные наборы прав доступа дли владельца файла, группы владельца и для всех остальных пользователей. Ниже демонстрируется, как это выглядит на практике. Откройте терминал и введите команду (имя файла можно ввести любое, главное, чтобы он существовал):
ls -l
‹имя_файла› Система ответит, например, так; -rw-r--r-- 1 den den-group 6051 Ноя 28 14:44 ‹
имя_файла›
В этом ответе нас больше всего интересует начало строки: -rw-r--r--. Это и есть права доступа. Начнем по порядку: первый символ (-) означает, что перед нами файл, а не каталог. Если бы перед нами был каталог, то вместо тире стоял бы символ d (от
directory)
. Идем дальше. Первая тройка символов (после дефиса) является правами доступа для владельца. Владельцу (пользователь den) разрешено читать (r) и изменять (w) файл, но запрещено запускать его на выполнение (третий символ - "-", а не "x").
Следующие два набора по три символа означают права доступа для членов группы владельца (группа den-group) и остальных пользователей (которые не являются владельцем файла или членами его группы). И те, и другие имеют право только читать файл (r--).
Нужно отметить, что в Linux любые права доступа cовсем не касаются пользователя root. Какие бы вы права доступами установили, пользователи root все равно получит полный доступ к любому файлу.
Наверняка вы уже побывали не на одном Linux-форуме и видели "магические" команды вроде:
chmod 666
файл chmod 777
каталог На самом деле - это никакие не заклинания, а обычные команды установки прав доступа. Команда chmod используется в системе для установки прав доступа к файлу или каталогу. Сначала указываются права доступа, а затем имя файла/каталога. Помните, что вы можете установить права доступа только к своим файлам, т.е. к файлам, владельцем которым являетесь именно вы. Пользователь root имеет право изменить права доступа к абсолютно любому файлу/каталогу.
Итак, разберемся с магией цифр. Посмотрим на набор прав: rw- r-- r--
Теперь заменим символы-буквы на 1, а дефисы - на 0. Получим:
110 100 100
А теперь загляните в таблицу двоичных/восьмеричных значений для целых чисел (табл. В.1).
Подставьте восьмеричные значения из табл. В.1 вместо двоичных, приведенных выше, - в итоге получится набор прав доступа 6 4 4 (владельцу разрешено чтение и запись, всем остальным - только чтение). Набор 666 соответствует правам доступа rw- rw
- rw-. Это самый небезопасный вариант прав доступа, позволяющий всем желающим делать с файлом всё, что они хотят (вплоть до удаления). Поэтому права 666 лучше не устанавливать для файлов, содержащих что-то важное. Для таких файлов больше подойдут права 600, разрешающие операции с файлом только его владельцу.
Таблица В.1. Запись цифр 0-7 в двоичной и восьмеричной системах счисления
| Двоичная |
Восьмеричная |
| 001 |
1 |
| 010 |
2 |
| 011 |
3 |
| 100 |
4 |
| 101 |
5 |
| 110 |
6 |
| 111 |
7 |
Права 777 обычно устанавливают для каталогов. Это то же, что и 666, но с дополнительным правом просмотра содержимого данного каталога.
Команда chown используется для изменения владельца файла. Например:
chown user report.txt
После выполнения этой команды пользователь user станет владельцем файла report.txt. Вы можете изменить владельца файла только для тех файлов, владельцем которых вы являетесь. Пользователь root может изменить владельца для любого файла/ каталога.